如何在不显示帧的情况下以可移植的方式检查Java中的NUM LOCK key状态?

如何在不显示帧的情况下以可移植的方式检查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

我想知道在运行时NUM LOCK或CAPS LOCK键是打开还是关闭的。但我需要以一种可移植的方式(对于所有Java平台)来实现这一点

以下两种方法不起作用:

1) 它在使用OpenJDK-6的Linux下抛出UnsupportedOperationException:Toolkit.getLockingKeyState:

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);  

    }

}