Jdialog focus Проблема при запуске через C ++ (JNI)

У меня есть приложение Java, которое показывает модальный JDialog без родителей. Этот JDialog имеет несколько текстовых полей. Когда я запускаю его автономно на win64, акцент делается на JDialog правильно.
Но когда я вызываю функцию запуска через мое приложение C ++ (JNI), оно фокусируется технически, а не практически. Я должен нажать на диалоговое окно, чтобы ввести текстовое поле. Код C ++ вызывает следующую функцию Java:

public static bool launchApp(someVars){
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
MyJDialog dialog = new MyJDialog();
dialog.setVisible(true);
....
}

Я попытался перехватить события окна, но это правильно показывает, что WindowActivation и WindowOpened были вызваны в обоих случаях (напрямую или через JNI). WindowDeactivation никогда не вызывали.

dialog.addWindowListener(new WindowAdapter() {
public void windowClosed(WindowEvent e) {
LOGGER.info("WindowListener method called: windowClosed.");
}

public void windowOpened(WindowEvent e) {
LOGGER.info("WindowListener method called: windowOpened.");
}

public void windowActivated(WindowEvent e) {
LOGGER.info("WindowListener method called: windowActivated.");
}

public void windowDeactivated(WindowEvent e) {
LOGGER.info("WindowListener method called: windowDeactivated.");
}

public void windowGainedFocus(WindowEvent e) {
LOGGER.info("WindowFocusListener method called: windowGainedFocus.");
}

public void windowLostFocus(WindowEvent e) {
LOGGER.info("WindowFocusListener method called: windowLostFocus.");
}

public void windowStateChanged(WindowEvent e) {
LOGGER.info(
"WindowStateListener method called: windowStateChanged."+ e);
}
});

Журнал показывает следующее:

30 июня 2016 г. 8:00:11
ИНФОРМАЦИЯ: Метод WindowListener вызвал: windowActivation.

30 июня 2016 г. 8:00:11
ИНФОРМАЦИЯ: Метод WindowListener вызвал: windowOpened.

Эта проблема воспроизводима во всех версиях Windows, кроме одной системы Windows 10. Я не знаю, что отличает эту конкретную машину / установку.

Есть какие-нибудь подсказки?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector