【问题标题】:KeyListener only sometimes worksKeyListener 仅有时有效
【发布时间】:2013-02-11 08:13:49
【问题描述】:

我正在编写一个游戏,我刚刚尝试添加 KeyListener。我有使用 Java 的经验,包括 KeyListeners,但由于某种原因,我无法弄清楚为什么这段代码只在某些时候有效。

这是我的监听函数:

public void Listener() { 
    System.out.println("[INFO] Listener() Ran.");

    KeyListener kl = new KeyListener() {
        public void keyPressed(KeyEvent e) {
            if(e.getKeyChar()=='a'){
                System.out.println("[DEBUG] A Pressed.");
            }
        }

        public void keyReleased(KeyEvent e) {
        }

        public void keyTyped(KeyEvent e) {
        }
    };
    panel.addKeyListener(kl);
    System.out.println("[DEBUG] panel added KeyListener.");
}

这段代码在我运行它的 10 次中可能只有 1 次有效。甚至可能更少。关于为什么会这样的任何想法?

【问题讨论】:

  • 当它不起作用时会发生什么?您还向面板添加了什么?这些控件可能会改为接受键吗?

标签: java awt keylistener


【解决方案1】:

getKeyChar 应该在 keyTyped 中调用。其他两种方法中的getKeyCode() == KeyEvent.VK_A

【讨论】:

    猜你喜欢
    • 2023-03-09
    • 2013-07-19
    • 2020-07-10
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    • 2011-01-20
    相关资源
    最近更新 更多