Java KeyListener的keyReleased未调用左右箭头键

时间:2015-07-13 08:30:21

标签: java swing keylistener

我有一个实现KeyListener的KeyHandler类。除了左右箭头键之外,所有键都正常工作,这些键注册为按下但从未释放(向上和向下箭头工作,与所有其他键一样)。密钥监听器被添加到JFrame上的Canvas。

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) {}

}

这种行为有原因吗?

1 个答案:

答案 0 :(得分:1)

java api的片段 - 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定义的时候。它似乎与系统有关。