java 如何检查用户是否按下了某个键?

In java how do I check if a user is pressing a certain key?

我正在尝试制作一个在后台运行的热键程序,但我不知道如何让它在按下某个键(在本例中为减号键)时进行检查。我需要程序等待按下某个键,然后程序检查该键是否为减号键。

我的程序的一个例子,现在是伪代码,就在这些地方。

while(true)
    {
        int pressedKey = userInputedKey;
        if(pressedKey == KeyEvent.VK_MINUS)
        {
            //action to be executed
        }
    }

我在其他线程上发现了很多使用 KeyListener 的建议,但我可能没有正确使用它,所以如果你的回答是使用 KeyListener,请解释如何彻底使用它(确切地说我没有了解当 KeyEvent 被实例化时,它已经将按下的任何键的输入作为该 KeyEvent 中的 keyCode,因此如果我在对 KeyListener 的调用中使用它,我将不会得到正确的结果)。当然,我对 KeyEvent 或 KeyListener 了解不多,所以我可能没有尝试使用 KeyListener 以正确的方式解决我的问题。

您可以使用KeyEvent获取密钥代码,然后查看。

例如:

someCompunent.addKeyListener(new KeyAdapter() {
    public void keyPressed(KeyEvent e) {
        if(e.getKeyCode() == KeyEvent.VK_MINUS) {
           // do the stuff
        }
    }
});

如果您想使用全局热键,当程序在任何应用程序中捕获按键事件时 - 尝试使用 JKeyMaster library(在 Windows、Linux 和 [=15= 中支持全局热键] OS)