Hallo!
Ich habe die folgende Situation, ich habe eine Anwendung, welche einem Anwender anzeigt, ob dieser Caps-Lock aktiviert hat. Sollte der Anwender das JFrame (Window) minimieren/nicht mehr fokussieren, möchte ich nachdem der Anwender das Window wieder auswählt, die Überprüfung durchführen, weil der Anwender in dieser Zeit die Caps-Lock-Taste z.B. aktiviert haben könnte.
Hier mal ein kleines Beispielprogramm:
Jetzt ist aber die folgende Situation festzustellen, der Anwender hat die Anwendung offen mit deaktivierten Caps-Lock. Daraufhin minimiert (verliert Fokus) der Anwender das Window. Während die Anwendung nicht fokussiert ist, aktiviert dieser den Caps-Lock. Dann wählt er das Window wieder aus (fokusiert es) mit aktivierten Caps-Lock. Anhand meines Beispiel-Codes erwarte ich, dass die Anwendung mir TRUE als Caps-Lock Status zurückgibt, doch ist die Rückgabe FALSE. Nach einigen Tests konnte ich feststellen, dass die Anwendung immer den letzten festgestellten Caps-Lock Status, bevor die Anwendung minimiert wurde, zurückgibt.
Hat jemand eine Idee woran dies liegt oder einen Änderungsvorschlag, vielen Dank!
Ich habe die folgende Situation, ich habe eine Anwendung, welche einem Anwender anzeigt, ob dieser Caps-Lock aktiviert hat. Sollte der Anwender das JFrame (Window) minimieren/nicht mehr fokussieren, möchte ich nachdem der Anwender das Window wieder auswählt, die Überprüfung durchführen, weil der Anwender in dieser Zeit die Caps-Lock-Taste z.B. aktiviert haben könnte.
Hier mal ein kleines Beispielprogramm:
Java:
JFrame frame;
public example() {
frame = new JFrame();
frame.setSize(400, 400);
frame.setVisible(true);
frame.addWindowFocusListener(new WindowFocusListener() {
@Override
public void windowGainedFocus(WindowEvent e) {
System.out.println("Caps Lock Status: " + Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK));
}
@Override
public void windowLostFocus(WindowEvent e) {
// nothing to do
}
});
}
Jetzt ist aber die folgende Situation festzustellen, der Anwender hat die Anwendung offen mit deaktivierten Caps-Lock. Daraufhin minimiert (verliert Fokus) der Anwender das Window. Während die Anwendung nicht fokussiert ist, aktiviert dieser den Caps-Lock. Dann wählt er das Window wieder aus (fokusiert es) mit aktivierten Caps-Lock. Anhand meines Beispiel-Codes erwarte ich, dass die Anwendung mir TRUE als Caps-Lock Status zurückgibt, doch ist die Rückgabe FALSE. Nach einigen Tests konnte ich feststellen, dass die Anwendung immer den letzten festgestellten Caps-Lock Status, bevor die Anwendung minimiert wurde, zurückgibt.
Hat jemand eine Idee woran dies liegt oder einen Änderungsvorschlag, vielen Dank!