1

我正在开发一个使用 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,它不起作用/无法识别该键。这是为什么?我错过了什么吗?

4

1 回答 1

1

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

相反,您应该是Key Bindings,这将使您在确定如何处理关键事件方面具有更大的灵活性

于 2013-06-16T21:03:29.493 回答