我创建了一个新的 KeyListener,定义如下:
...
public void keyTyped(KeyEvent arg0) {
if (arg0.equals(KeyEvent.VK_ENTER) || (arg0.equals(KeyEvent.VK_R))) {
System.out.println("Enter or R key typed.");
} else {
System.out.println("Something else typed.");
}
}
...
我真正想做的是每次输入 Enter 键或“R”时调用一个方法。
我的问题:无论我输入什么,都不会触发 if 情况。它总是跳转到其他情况。这种行为的原因是什么?
最佳答案
要将输入与 KeyEvent.xxx
值进行比较,您需要使用 the getKeyCode
method ,当您捕获 keyPressed
或 keyReleased
事件时返回 int
- 然后您可以将值与 KeyEvent.xxx
。如果你想使用 keyTyped
事件,你可以使用 getKeyChar
方法,但它不会捕获一些键(例如 Action 键或修改键) - 例如这应该有效:
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER || e.getKeyCode() == KeyEvent.VK_R) {
System.out.println("Enter or R key typed.");
} else {
System.out.println("Something else typed.");
}
}
关于Java KeyEvent 比较 - arg0 是否等于特定键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10434670/