好的,在这被标记为可能重复之前,我已经尝试了以下代码:
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) {
}
}
这只是一直打印出它最初的内容
例如,如果我刚开始时大写锁定是开启的,即使我立即切换它,它也会打印:
大写锁定现在为:开启
大写锁定现在为:开启
大写锁定现在为:开启
大写锁定现在为:开启
等等,如果我开始时关闭它,无论如何它都不会打印开启。