わかりました、これが重複の可能性があるとしてフラグが立てられる前に、私はすでに次のコードを試しました:
Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK)
そして、それは常に私にとってfalseを返しています[以下を参照]。これが機能するはずで、私がそれを悪用しているのか、それとも壊れていることがわかっているのか、誰かが確認できますか? それが実際に壊れている場合、誰かが使用するより良い方法を持っていますか?
編集:
わかりました、さらに何かを見つけました。プログラムの起動時の状態を返すようです。オンにしてプログラムを開始すると、オンと表示され、その逆も同様です。これが私のコードです:
while (true) {
boolean isOn = Toolkit.getDefaultToolkit().getLockingKeyState(
KeyEvent.VK_CAPS_LOCK);
System.out.println("Caps lock is now: " + (isOn ? "ON" : "off"));
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
}
そして、それは常にそれが始まったものは何でも印刷するだけです
(例: Caps Lock をオンにして開始すると、すぐにオフに切り替えても、次のように出力されます。
Caps Lock は現在: オン
Caps Lock は現在: オン
Caps Lock は現在: オン
Caps Lock は現在: オン
など、オフから始めると、何があっても印刷されます)