Вызов модального диалога JNI отключает значок панели задач - PullRequest
1 голос
/ 20 ноября 2008

В приложении Java (JRE 1.5.0_12) в Windows XP я вызываю собственный метод:

public native int attachImage( ... );

... который находится в Visual C ++ 6.0 .dll. Он отображает модальное окно приложения. Проблема в том, что значок в трее приложения не реагирует на щелчки мышью, когда это окно имеет фокус. Это проблема, потому что когда отображается это окно, пользователи часто переключаются на другое приложение, чтобы выбрать изображение для вложения, а затем хотят восстановить это приложение.

Ответы [ 2 ]

1 голос
/ 20 ноября 2008

Какой пакет GUI вы используете?

Вы должны быть в состоянии реализовать это, не прибегая к вызовам JNI.

Например, в SWT вы можете открыть модальную оболочку приложения следующим образом:

Shell shell = new Shell(display,SWT.APPLICATION_MODAL);

Для свинга это будет:

dialog.setModalityType(Dialog.ModalityType.APPLICATION_MODAL);
0 голосов
/ 20 ноября 2008

Ваш метод attachImage неправильно устанавливает родительское окно в окно вашего Java-приложения? Получить hwnd для этого может быть сложно (GetForegroundWindow / etc?), Но это может быть необходимо?

Кроме того, почему часть изображения должна быть JNI? это может помочь нам найти вам решение, которое полностью исключает JNI-часть?

...