Hallo zusammen,
ich würde gerne in einem Programm von mir auf den Status von Capslock und Numlock reagieren und habe bei einer schnellen Googlesuche gefunden, dass man das relativ leicht über das AWT Toolkit auslesen kann. Um das auszuprobieren habe ich mir eine kleine Klasse geschrieben, die alle paar Sekunden den Status der beiden Tasten in der Konsole ausgibt.
Mein Problem ist, dass das Programm den Status nicht zu aktualisieren scheint, solange es läuft. Das heißt, wenn zum Beispiel CAPSLOCK aktiv ist, wenn ich das Programm in Eclipse starte, dann wird jedes Mal CAPS LOCK: true ausgegeben, auch wenn ich die Taste ausschalte. Wenn ich aber das Programm dann beende und neustarte, wird korrekt CAPS LOCK: false angezeigt, aber dann auch noch, wenn ich die Taste wieder anmache.
Übersehe ich irgendwas? Warum wird die Statusänderung nicht erkannt, während das Programm läuft?
ich würde gerne in einem Programm von mir auf den Status von Capslock und Numlock reagieren und habe bei einer schnellen Googlesuche gefunden, dass man das relativ leicht über das AWT Toolkit auslesen kann. Um das auszuprobieren habe ich mir eine kleine Klasse geschrieben, die alle paar Sekunden den Status der beiden Tasten in der Konsole ausgibt.
Mein Problem ist, dass das Programm den Status nicht zu aktualisieren scheint, solange es läuft. Das heißt, wenn zum Beispiel CAPSLOCK aktiv ist, wenn ich das Programm in Eclipse starte, dann wird jedes Mal CAPS LOCK: true ausgegeben, auch wenn ich die Taste ausschalte. Wenn ich aber das Programm dann beende und neustarte, wird korrekt CAPS LOCK: false angezeigt, aber dann auch noch, wenn ich die Taste wieder anmache.
Übersehe ich irgendwas? Warum wird die Statusänderung nicht erkannt, während das Programm läuft?
Java:
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
public class CapsLockReader {
public static void main(String[] args) throws InterruptedException {
while (true) {
boolean isCapsLocked = Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK);
boolean isNumLocked = Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_NUM_LOCK);
System.out.println("CAPS LOCK: " + isCapsLocked);
System.out.println("NUM LOCK: " + isNumLocked);
Thread.sleep(3000);
}
}