Google Guice를 사용하는 Java Swing 응용 프로그램을 IOC 컨테이너로 사용하고 있습니다. 모든 것이 잘 작동합니다. 몇 가지 UI 문제가 있습니다. 표준 L & F가 Pushing 픽셀 Substance L & F로 대체 된 경우 Guice의 스윙 구성 요소가 UI 스레드 외부에서 생성되어 응용 프로그램이 실행되지 않습니다.Guice가 UI 스레드 문제 외에 스윙 구성 요소를 생성합니까?
Guice에게 UI 스레드에서 스윙 구성 요소를 만들도록 지시하는 방법이 있습니까?
SwingUtilities.invokeAndWait(Runnable)
을 만든 후에 스윙 구성 요소를 반환하는 사용자 지정 공급자를 만들어야 할 수도 있습니다.
UI 스레드에서 전체 응용 프로그램을 실행하는 생각이 싫지만 어쩌면 완벽한 솔루션 일 수 있습니다.
이것은 내 문제에 대한 가장 단순하고 쉬운 해결책이었습니다. Swing 구성 요소를 확장하고 Guice가 인스턴스화하도록 초기 오류를 만들었습니다. 컴포지션으로 전환 한 후 (예 : Swing 구성 요소를 참조하는 건물 서비스) EDT에 명시 적으로 생성 된 모든 서비스가 정상적으로 처리되었습니다. 응용 프로그램의 응답 성이 향상되고 더 이상 UI 결함이 없습니다. 요령 : 물질 모양 및 느낌은 스윙 코드가 EDT 외부에서 사용되는지 테스트하는 데 훌륭한 도구입니다. –