2014-03-05 1 views
1

두 개의 스레드에 JFrame과 수신기가 있습니다.스레드 안전성 : JFrame 및 다른 클래스

청취자는 서버의 메시지를 적극적으로 수신하고 이에 따라 JFrame의 메시지 상자에 추가합니다. 현재 JFrame을 청취자에게 전달하고 JFrames appendMessageBox 메서드를 호출하여 청취 스레드 내부에서 생성 한 메서드를 호출합니다.

appendMessageBox 메서드를 수신기 스레드와 동기화해야합니까? 리스너의 메서드를 JFrames 스레드에서 콜백해야합니까?

미리 감사드립니다.

답변

2

간단한 작업 : Swing 구성 요소를 수정하는 모든 호출은 Swing 이벤트 스레드 인 EDT (Event Dispatch Thread)에서 수행해야합니다. 기간.

그래서 리스너는 이벤트 발송 스레드에서 모델을 업데이트해야하며 모델 변경 사항은 JFrame (보기)에 반영되어야합니다.