
Sun에서 나온 Java 6나 Java 5최신 업데이트 버젼은 GtkLookAndFeel에서 최대한 네이티브 환경과 유사하게 보이기 위해 Gtk 렌더링 코드를 직접 사용한다.
그냥 Swing만 사용할 때는 만족스러운 결과를 내는데
SWT_AWT 클래스를 사용하는 경우는 'unexprected async reply'라는 메시지가 나타난다.
SWT_AWT는 SWT 3.0 이후부터 들어간 클래스인데 SWT 컴포넌트에 AWT/Swing 컴포넌트를 넣거나 그 반대를 가능케 하는 유틸리티 클래스이다.
위의 오류는 X call이 여러 thread에 동시에 발생할때 나타난다.
SWT_AWT를 사용하면 SWT event thread와 AWT event thread가 동시에 수행되기 때문이다.
동시에 수행되지 않도록 다음과 같은 코드를 처음에 실행하면 얼추 된다.
JAVA:
-
-
public void paintDirtyRegions() {
-
Platform.lock.lock();
-
super.paintDirtyRegions();
-
Platform.lock.unlock();
-
}
-
};
-
'이런팁은 사내 기밀 아닌가요?' 라고 물으신다면
'이정도는 삽질에 끼지도 못해요' 라고 답해 드리겠습니다.