작업 스레드의 메시지를 Java의 GUI로 전달하는 방법은 무엇입니까? 안드로이드에서 핸들러와 메시지 클래스를 통해이 작업을 수행 할 수 있음을 알고 있습니다. 그러나 나는 자바에서 같은 것을 원한다. 미리 감사드립니다. Ranganath.tm작업 스레드에서 메시지를 Java GUI의 GUI로 전달하는 방법
0
A
답변
2
GUI 구성 요소에 EventBus & MVP 디자인을 사용하는 것이 가장 좋은 방법이라고 생각합니다. "작업 스레드"는 버스로 전송하여 이벤트를 발생시키고 특정 이벤트 유형의 처리기 인 발표자에게이를 알립니다. 같은 디자인의
니스 설명을 여기에서 찾을 수 있습니다 : Is there a recommended way to use the Observer pattern in MVP using GWT?
... 질문은 GWT의 대답에 대해 비록 MVP에 따라 설계 모든 응용 프로그램에 적용 할 수있다.
3
스윙 구성 요소는 이벤트 발송 스레드에서만 액세스해야하므로 SwingUtilities.invokeLater
을 사용해야합니다.
이 메소드의 javadoc에는, thread에 관한 Swing 튜토리얼에의 링크가 있습니다. 이 링크를 클릭하십시오.
public class SwingWithThread {
private JLabel label;
// ...
public void startBackgroundThread() {
Runnable r = new Runnable() {
@Override
public void run() {
try {
// simulate some background work
Thread.sleep(5000L);
}
catch (InterruptedException e) {
// ignore
}
// update the label IN THE EDT!
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
label.setText("Background thread has stopped");
}
});
};
};
new Thread(r).start();
}
}
1
하는 이벤트를 보내기 :
다음은 예입니다. 이 유틸리티 기능을 통해 우리가 경우 실행 가능한을 확인할 수 있습니다 우리는 FrostWire에 다음과 같이 그것을 http://download.oracle.com/javase/tutorial/uiswing/concurrency/worker.html
0
당신은 SwingWorker의 클래스를 사용할 수는이 사건을 해결하기 위해 설계 참조 이미 GUI 스레드에서 호출 중임
/**
* InvokesLater if not already in the dispatch thread.
*/
public static void safeInvokeLater(Runnable runnable) {
if (EventQueue.isDispatchThread()) {
runnable.run();
} else {
SwingUtilities.invokeLater(runnable);
}
}
1
/당신이 사용하고있는 스레드 : this tutorial이
관련 문제
- 1. 다른 스레드에서 GUI의 텍스트 상자를 업데이트하는 방법
- 2. Java GUI의 문서 모델
- 3. Java GUI의 일본어 글꼴
- 4. Java GUI의 Python 클래스
- 5. 하나의 스레드에서 다른 스레드로 간단한 Java 객체를 전달하는 빠른 방법
- 6. Android : 백그라운드 스레드에서 UI 스레드로 메시지를 전달하는 적절한 방법은 무엇입니까?
- 7. ruby 스레드에서 오류 메시지를 얻는 방법
- 8. DLL에서 GUI로 메시지 전달
- 9. Zend_Log를 사용하여 메시지를 배열로 전달하는 방법
- 10. WCF를 사용하여 창을 여는 메시지를 전달하는 방법
- 11. 스레드에서 작업 대기열 만들기
- 12. Java RMI : POJO를 전달하는 방법
- 13. 한 gui에서 다른 gui로 Java gui 전환하는 방법
- 14. 브라우저를 java 용 GUI로 사용하려면 어떻게해야합니까?
- 15. GUI로 프로그래밍 방식으로 제어되는 Java 웹 브라우저
- 16. RelaxNG 스키마를 편집 가능한 GUI로 자동 변환합니다.
- 17. Java : 클라이언트와 서블릿간에 메시지를 전달하는 적절한 방법은 무엇입니까?
- 18. 왜 사람들이 이벤트 대기열에서 Java GUI의 실행합니까
- 19. GUI의 Java/SWT/JFace 강력한 재로드?
- 20. 스윙 GUI의 최적 배치 방법
- 21. Java - Explorer에서 Java GUI로 파일 이동 - 어떤 종류의 이벤트입니까?
- 22. 클래스간에 의미있는 메시지를 전달하는 방법은 무엇입니까?
- 23. 별도의 스레드에서 신발과 무거운 작업
- 24. 터미널 대신 터미널 gui의 메시지를 출력하도록 표준 출력을 재지향
- 25. C#에서 작업자 스레드에서 UI 메시지를 게시하는 방법
- 26. http 요청 메시지를 구성하는 Java
- 27. WPF는 ThreadPool 스레드에서 UI로 예외 메시지를 전달합니다.
- 28. Java 클래스에 javascript 변수 값을 전달하는 방법
- 29. Java 작업
- 30. http 메시지를 수신하는 Java
어떤 GUI 라이브러리가 의미합니까? 그것은 차이를 만든다. –