我希望能够接收用户从键盘输入的内容,但我已经添加了我认为允许我的程序执行此操作的所有内容,但它仍然不起作用。我做错了什么?
class KeyInput implements KeyListener {
public void keyPressed(KeyEvent e) {
System.out.println("keyPressed");
}
public void keyReleased(KeyEvent e) {
System.out.println("keyReleased");
}
public void keyTyped(KeyEvent e) {
System.out.println("keyTyped");
}
}
public GameView() {
this.addKeyListener(new KeyInput());
}
构造函数工作正常,KeyInput 是 GameView 对象的内部类。 运行游戏时,如果我按下某个键,系统输出中不会打印任何内容。 我错过了什么吗?谢谢!
最佳答案
KeyListener
是善变的情妇,它一直需要大量的关注。基本上,如果它注册的组件具有焦点并且可聚焦,它只会引发关键事件。
通常,您希望避免使用它并使用键绑定(bind) API,How to Use Key Bindings ,但这取决于您是否必须使用纯 AWT API...
关于java - KeyListener 在 Java 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27270284/