在java中如何检查用户是否按某个键?

时间:2015-12-25 06:55:42

标签: java keyevent

我正在尝试制作一个在后台运行的热键程序,我无法弄清楚如何在按下某个键时检查它(在这种情况下是减号键)。我需要程序等待按下一个键,然后程序检查该键是否为减号键。

我现在使用伪代码的程序示例就是这些行。

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

我在其他线程上发现了很多关于使用KeyListener的建议,但我可能没有正确使用它,所以如果您的响应是使用KeyListener请解释如何彻底使用它(要完全使用我是不明白的当KeyEvent被实例化时,它已经输入了任何键被按下作为KeyEvent中的keyCode,所以如果我在调用KeyListener时使用它,我将无法得到正确的结果)。当然,我对KeyEvent或KeyListener了解不多,所以我可能没有通过使用KeyListener以正确的方式解决我的问题。

2 个答案:

答案 0 :(得分:1)

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

E.g:

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

答案 1 :(得分:1)

如果你想使用全局热键,当程序在任何应用程序中捕获keypress事件时 - 尝试使用JKeyMaster library(支持Windows,Linux和MAC OS中的全局hotkweys)