java - 为什么我的按键事件不起作用?

标签 java key switch-statement keyevent

我正在开发一款使用 Keyevents 的 Java 游戏。基本上,它是一个我想要增强的模板,但现在我正在努力解决一些基本的问题。就这样:

在 keyPressed() 方法中有许多事件,如下所示:

public void keyPressed(int key) {
    switch (key) {
    case KeyEvent.VK_A:
        System.out.println("A");
        methodA();
        break;
    case KeyEvent.VK_B:
        System.out.println("B");
        methodB();
        break;
    }
}

但是,当我尝试添加另一个 KeyEvent(例如 KeyEvent.VK_1)时,它不起作用/无法识别该键。这是为什么?我错过了什么吗?

最佳答案

KeyListener 有一个众所周知的问题。为了接收按键事件,它所注册的组件必须是可聚焦的并且具有焦点。按键事件也有可能在到达您的监听器之前被消耗(由您注册的组件)。

相反,你应该是Key Bindings ,这将为您提供更大的灵 active 来确定如何处理关键事件

关于java - 为什么我的按键事件不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17137466/

相关文章:

python - Selenium python send_key错误: list object has no attribute

windows - 如何使用 CNG 处理明文 key ?

android-studio - Kotlin 'when'-如何在Android Studio中获得 Lint 警告

javascript - 如何将一个 switch 语句放入另一个 switch 语句中

java - Java 中的 N 到 N 索引关系

java - java 中的电子邮件回复

java - 替换基本 fragment 及其布局时 fragment 重叠

mysql - EER图正向工程错误: mysql ERROR: Error 1215: Cannot add foreign key constraint

clojure - Lein 检查 : case has int tests, 但测试的表达式不是原始的

java - 什么时候加密需要填充?