我有一个实现KeyListener的KeyHandler类。除了注册为按下但从未释放的左右箭头键之外,所有键都在工作(向上和向下箭头工作,就像所有其他键一样)。键侦听器被添加到JFrame上的画布中。
public class KeyHandler implements KeyListener {
public void keyPressed(KeyEvent e) {
System.out.println("Pressed");
}
public void keyReleased(KeyEvent e) {
System.out.println("Released");
}
public void keyTyped(KeyEvent e) {}
}
这种行为有什么原因吗?
javaapi的片段-Keyevent:
Not all keyboards or systems are capable of generating all virtual key codes. No attempt is made in Java to generate these keys artificially.
所以从Java方面来看,它仍然是定义的行为。然而,从我的逻辑感觉来看,我也不能给你上/下和左/右箭头键之间的任何区别。只是如果我们遵循API的定义。这似乎取决于系统。