Wie kann ich den Fokus einer Java-Anfrage festlegen, wenn ein Fenster über die Taskleiste geschlossen wird?Java

Java-Forum
Anonymous
 Wie kann ich den Fokus einer Java-Anfrage festlegen, wenn ein Fenster über die Taskleiste geschlossen wird?

Post by Anonymous »

Ich erkenne, wenn ein Fenster vom Benutzer geschlossen wird, sodass ich zum Speichern auffordern kann, indem ich einen Fenster-Listener und windowClosing() hinzufüge. Wenn nicht gespeicherte Arbeit vorhanden ist, fordere ich den Fokus für dieses Fenster an und verwende dann JOptionPane.
Dies funktioniert, wenn dieses Fenster fokussiert ist. Wenn der Benutzer jedoch das Fenster schließt, indem er mit der Maus über die Taskleiste fährt und dort auf die Schaltfläche „Schließen“ klickt, erhält manchmal das Fenster den Fokus, manchmal blinkt es aber auch nur in der Taskleiste (und wird nicht fokussiert). Ich brauche das, um mich konsistent zu verhalten. Wenn dies plattformspezifisch ist, gibt es möglicherweise keine Lösung (ich verwende Windows 11).

Code: Select all

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);
}
});
Die separate Verwendung von SwingUtilities.invokeLater für die Fokusanforderung und das JOptionPane macht keinen Unterschied.
Image

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post