我正在开发一个使用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
,它不起作用/密钥无法识别。这是为什么?我错过了什么吗?
答案 0 :(得分:1)
KeyListener
有一个众所周知的问题。为了接收键事件,它注册的组件必须是可聚焦的并具有焦点。键事件也可能在它到达侦听器之前被消耗(通过您注册的组件)。
相反,您应该Key Bindings,这将为您提供更大的灵活性,以确定如何处理关键事件