【发布时间】:2015-12-25 06:55:41
【问题描述】:
我正在尝试制作一个在后台运行的热键程序,但我不知道如何让它检查何时按下某个键(在本例中为减号键)。我需要程序等待某个键被按下,然后程序检查该键是否是减号键。
我的程序的一个例子就是现在的伪代码。
while(true)
{
int pressedKey = userInputedKey;
if(pressedKey == KeyEvent.VK_MINUS)
{
//action to be executed
}
}
我在其他线程上找到了很多使用 KeyListener 的建议,但我可能没有正确使用它,所以如果您的回答是使用 KeyListener,请解释如何彻底使用它(确切地说,我不明白如何当一个 KeyEvent 被实例化时,它已经输入了任何被按下的键作为该 KeyEvent 中的 keyCode,所以如果我在调用 KeyListener 时使用它,我将不会得到正确的结果)。当然,我对 KeyEvent 或 KeyListener 了解不多,所以我可能没有尝试通过使用 KeyListener 以正确的方式解决我的问题。
【问题讨论】:
-
如何检查用户是否在按键?是我一直用来解决我的问题的线程之一,尽管最佳答案并没有解决他的问题(如提出问题的人的 cmets 所示)。
-
某些东西必须拦截关键事件并且它必须具有焦点,所以它不能在后台运行。想象一下,您打开了 5 个程序,而您将重点放在一个程序上。您不能全部拦截 5 个关键事件,只有一个处于焦点。
-
另外,cmets中的问题不要重复,写一次就够了。