JNI 모달 대화 상자를 호출하면 작업 표시 줄 아이콘이 비활성화됩니다
-
08-07-2019 - |
문제
Windows XP의 Java 응용 프로그램 (JRE 1.5.0_12)에서는 기본 방법을 호출합니다.
public native int attachImage( ... );
... 시각적 C ++ 6.0 .dll에 사는 ... 응용 프로그램 모달 창이 표시됩니다. 문제는 응용 프로그램의 트레이 아이콘이 Mouseclicks에 응답하지 않고이 창에 초점을 맞추는 것입니다. 이 창이 표시되면 사용자가 종종 다른 응용 프로그램으로 전환하여 첨부 할 이미지를 선택한 다음이 응용 프로그램을 복원하려고하기 때문에 문제가됩니다.
해결책
어떤 GUI 패키지를 사용하고 있습니까?
JNI 통화에 의지하지 않고도이를 구현할 수 있어야합니다.
예를 들어, SWT에서는 다음과 같은 응용 프로그램 모달 쉘을 열 수 있습니다.
Shell shell = new Shell(display,SWT.APPLICATION_MODAL);
스윙의 경우 : 이것은 다음과 같습니다.
dialog.setModalityType(Dialog.ModalityType.APPLICATION_MODAL);
다른 팁
ATTHIMAGE 메소드가 부모 창을 Java 응용 프로그램 창으로 올바르게 설정하지 않습니까? 이를 위해 HWND를 얻는 것은 까다로울 수 있지만 (Getforegroundwindow/etc?) 필요할 수 있습니까?
또한 이미지 부분이 JNI 여야하는 이유는 무엇입니까? JNI 부분을 완전히 피하는 솔루션을 찾는 데 도움이 될 수 있습니까?
제휴하지 않습니다 StackOverflow