我试图将我从关键侦听器
KeyEvent.getKeyCode()
获得的关键代码与 KeyEvent.VK_SLASH
之类的代码进行比较,但是当我按下斜杠键时(我知道它是斜杠,因为它显示了 /),比较 ( if(e.getKeyCode() == KeyEvent.VK_SLASH)
)是错误的。
但是当我将它与
KeyEvent.VK_DEAD_ACUTE
进行比较时,它返回true。
其他键(例如 ABCD 或数字)都可以,但有些键(例如 ` 和 /)是不同的。
这是为什么呢?我该如何解决这个问题?
编辑:其他键(例如 ' )也会受到影响,因为它会产生
. And pressing the
键给我 VK_DEFINED
也许尝试使用
Key = e.getKeyCode();
然后做
if( Key == KeyEvent.VK_SLASH){
...
}
获取KeyCodes的方式很奇怪,不知道这是否是你的问题,但这是我发现的。
component.addKeyListener(new KeyListener() {
public void keyTyped(KeyEvent e) {
System.out.println(e.getKeyCode());//This will always print 0
}
@Override
public void keyPressed(KeyEvent e) {
System.out.println(e.getKeyCode());//This will the corresponding keycode of whatever key is pressed
}
@Override
public void keyReleased(KeyEvent e) {
System.out.println(e.getKeyCode());//This will the corresponding keycode of whatever key is pressed
}
});