java - KeyListener 仅有时有效

标签 java awt keylistener

我正在编写一个游戏,我刚刚尝试添加 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.");
}

这段代码在我运行它的时候可能只有十分之一。也许更少。关于为什么会这样的任何想法吗?

最佳答案

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

关于java - KeyListener 仅有时有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15079612/

相关文章:

java - 如何使用另一个类中的图形对象调用函数?

java - Android - 隐藏文本 --> 显示文本 2 秒 --> 再次隐藏文本

java - 如何使用 sharedpreferences 保存计时器时间并在另一个 Activity 中检索它

java - 单个 java.awt.Rectangle 可以用两种不同的边界颜色绘制吗?

java - 带 TexturePaint 的图标抛出 InternalError : Surface not cachable

java - 使用键盘箭头在网格面板内移动 JButton

java - KeyListener 不起作用

java - 表格单元格编辑器问题

java - AbstractButton 类型中的方法 addActionListener(ActionListener) 不适用于参数 (Object)

java - 数组不会打印出其中的所有乘法,只打印一个