我想做一个在后台运行的热键程序,我不知道如何让它检查何时按下某个键(在这种情况下是减号键)。我需要程序等待一个键被按下,然后程序检查这个键是否是减号键。在Java中,我该如何检查用户是否按下某个键?
我现在使用伪代码的程序的一个例子就是沿着这些线的某处。
while(true)
{
int pressedKey = userInputedKey;
if(pressedKey == KeyEvent.VK_MINUS)
{
//action to be executed
}
}
我已经找到了很多建议对其他线程使用的KeyListener,但我可能无法正常使用它来,所以如果你的反应是使用的KeyListener请解释如何充分利用它(准确的说我不不明白当一个KeyEvent被实例化的时候,它已经输入了作为该KeyEvent中keyCode的任何键的输入,所以如果我在调用KeyListener时使用它,我将不会得到正确的结果)。当然,我不太了解KeyEvent或KeyListener,所以我可能没有尝试通过使用KeyListener来解决我的问题。
请参阅到[如何检查用户是否按下某个键?](http://stackoverflow.com/questions/18037576/how-do-i-check-if-the-user-is-pressing-a-key)或者 [如何检测一个键是否在Java中按?](http://stackoverflow.com/questions/23841127/how-to-detect-if-a-key-was-pressed-in-java) –
如何我要检查用户是否按下关键?是我一直用来解决我的问题的线索之一,尽管最重要的答案并未解决他的问题(如提问者的评论所示)。 – loserlobster
某些东西必须拦截关键事件,并且必须有焦点,所以它不能在后台运行。想象一下,你有5个程序打开,你把重点放在一个。你不能拥有全部5个拦截关键事件,只有一个焦点。 – user1803551