Как я могу сделать фокус запроса Java, когда окно закрывается на панели задач?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как я могу сделать фокус запроса Java, когда окно закрывается на панели задач?

Сообщение Anonymous »

Я определяю, когда окно закрыто пользователем, и могу предложить сохранить его, добавляя прослушиватель окна и функцию windowClosing(). Если есть несохраненная работа, я запрашиваю фокус для этого окна, а затем использую JOptionPane.
Это работает, если это окно сфокусировано. Но если пользователь закрывает окно, наведя курсор на панель задач и нажав кнопку закрытия, то иногда окно получает фокус, но иногда просто мигает на панели задач (и не фокусируется). Мне нужно это, чтобы вести себя последовательно. Если это зависит от платформы, решения может не быть (я использую Windows 11).

Код: Выделить всё

window.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
window.addWindowListener(new WindowAdapter() {
public void windowClosing(final WindowEvent e) {
window.requestFocus();
window.toFront();
JOptionPane.showMessageDialog(window, "Not saved", "Not saved", JOptionPane.ERROR_MESSAGE);
}
});
Использование SwingUtilities.invokeLater отдельно для запроса фокуса и JOptionPane не имеет значения.
Изображение


Подробнее здесь: https://stackoverflow.com/questions/797 ... he-taskbar
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»