2012-09-29 7 views
0

netbeans에서 서버 클라이언트 응용 프로그램 프로젝트를 만들고 있습니다. 나는 넷빈즈 GUI 빌더로 JFrame과 다른 것들 (버튼, 텍스트 필드, 텍스트 영역, 메뉴)을 만들었다. 새 서버 버튼을 누르면 전체 JFrame과 모든 구성 요소가 고정되지만 서버 - 클라이언트 부분이 백그라운드에서 작동합니다. 나는 스레드 또는 무언가에 관한 문제가 있다고 생각하지만 실제로해야할 일을 이해하지 못했습니다.Java swing 구성 요소가 고정되었습니다.

+2

코드를 읽으십시오. –

답변

6

문제는 서버 - 클라이언트 코드는 사실 하지, 백그라운드에서 작동하는 대신 스윙 이벤트 스레드 작업에 가능성이 높습니다. 당신은 SwingUtilities 방법으로 당신이 알고이를 테스트 할 수 있습니다 또한 SwingUtilities.isEventDispatchThread()

:

  • 당신이 배경 작업을 수행하기 위해 SwingWorker의를 사용하고 있습니까?
  • join() 전화를 백그라운드 스레드로 사용하고 있습니까?
  • SwingWorkers get() 방법을 기다리고 계십니까?

코드 세부 정보를 통해보다 구체적인 조언을 얻을 수 있습니다. 당신이해야 할 일을 배우려면 Lesson: Concurrency in Swing

+0

나는 내 문제를 발견 할 수 있었다. 나는 어리석은 실수를 저질렀다. 서버 스레드를 시작하려면 시작 대신 run 메서드를 호출했습니다. 왜 얼어 붙었습니다. 그럼에도 불구하고 귀하의 조언에 감사드립니다. – user1707095

+0

@ user1707095 : 내 충고가 옳았다.'run()'을 직접 호출하면 의심스러운 이벤트 스레드에서 장기 실행 코드를 호출하게된다. –