이 스레드의 실제 목적을 이해하려고합니다. 나는 책, 기사를 읽었지만, 어떤 EventQueue 스레드가 책임지고 있는지 명확히 밝히지 않았다. 나는 많은 예를 보았으며 때로는 이것이 사용되기도하고 때로는 사용되지 않는 경우도 있습니다. 이 스레드는 모든 GUI 작업 (예 : 창, 구성 요소 만들기, OS API 및 기타 항목의 네이티브 함수 호출)을 담당합니다. 그래서 GUI의 일부를 바꿀 때마다이 작업을 대기열에 전달해야합니다. 그래서 대기열 응용 프로그램을 사용하면 기본적으로 기본 스레드와 이벤트 발송 스레드 두 개의 스레드가 있습니다. 그래서 나는 모든 bussines 로직을 메인 스레드에서 수행하거나 메인에서 새로운 스레드를 생성하고 EventQueue의 모든 gui 연산을 수행해야한다 (예를 들어 테이블에 새 항목을 추가하고 레이블을 업데이트하는 목록에서 텍스트를 변경하는 등). 더 이상 나는 EventQueue에서 메인 윈도우 (class extends jframe)의 인스턴스를 생성해야합니까?Java Swing의 EventQueue.invokeLater
맞습니까? 그렇지 않으면 설명하십시오. 모두에게 미리 감사드립니다.
모든 이벤트 _handlers_는 이벤트 처리기 스레드에서 호출됩니다. 따라서 버튼에 대한 액션 리스너를 작성하면 버튼을 클릭 할 때 actionPerformed() 메소드가 이벤트 핸들러 스레드에서 호출됩니다. 버튼의 액션이 상당한 시간이 걸리지 않는 것이라면 actionPerformed() 내에서 Swing 메소드를 직접 호출 할 수 있습니다. 이 경우에는 "invokeLater()"를 호출 할 필요가 없습니다. –