如何在不显示帧的情况下以可移植的方式检查Java中的NUM LOCK key状态?
我想知道在运行时NUM LOCK或CAPS LOCK键是打开还是关闭的。但我需要以一种可移植的方式(对于所有Java平台)来实现这一点 以下两种方法不起作用: 1) 它在使用OpenJDK-6的Linux下抛出UnsupportedOperationException:Toolkit.getLockingKeyState:如何在不显示帧的情况下以可移植的方式检查Java中的NUM LOCK key状态?,java,key,portability,num-lock,Java,Key,Portability,Num Lock,我想知道在运行时NUM LOCK或CAPS LOCK键是打开还是关闭的。但我需要以一种可移植的方式(对于所有Java平台)来实现这一点 以下两种方法不起作用: 1) 它在使用OpenJDK-6的Linux下抛出UnsupportedOperationException:Toolkit.getLockingKeyState: Toolkit toolkit = Toolkit.getDefaultToolkit(); boolean numlock = toolkit.getLockingKeyS
Toolkit toolkit = Toolkit.getDefaultToolkit();
boolean numlock = toolkit.getLockingKeyState(KeyEvent.VK_NUM_LOCK);
2) 它显示一个框架,但我们需要在不显示工件的情况下执行此操作(idea发现):
如果你只需要显示窗口以便机器人可以使用它,为什么不能将窗口隐藏?如果你只需要显示窗口以便机器人可以使用它,为什么不能将窗口隐藏?
import java.awt.*;
import java.awt.event.*;
public class Test {
public static void main(String[] args) throws AWTException {
// create AWT component
Frame f = new Frame();
// handle component's keyPressed event
f.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent ev) {
System.out.println(Character.isUpperCase(
ev.getKeyChar()) ?
"Caps Lock ON" :
"Caps Lock OFF");
}
});
// make component visible (otherwise the Robot won't work)
f.show();
// create Robot
Robot robot = new Robot();
// generate simple caracter key press
robot.keyPress(KeyEvent.VK_A);
}
}