【问题标题】:Java KeyListener's keyReleased not called for left and right arrow keysJava KeyListener 的 keyReleased 不为左右箭头键调用
【发布时间】:2015-07-13 08:30:20
【问题描述】:

我有一个实现 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) {}

}

这种行为有原因吗?

【问题讨论】:

    标签: java swing keylistener


    【解决方案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 定义。它似乎取决于系统。

    【讨论】:

      猜你喜欢
      • 2014-01-19
      • 2012-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多