Вызов модального диалога JNI отключает значок на панели задач

StackOverflow https://stackoverflow.com/questions/303712

Вопрос

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

public native int attachImage( ... );

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

Это было полезно?

Решение

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

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

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

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

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

dialog.setModalityType(Dialog.ModalityType.APPLICATION_MODAL);

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top