java - KeyListener 在 Java 中不起作用

标签 java swing printing awt keylistener

我希望能够接收用户从键盘输入的内容,但我已经添加了我认为允许我的程序执行此操作的所有内容,但它仍然不起作用。我做错了什么?

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/

相关文章:

C 编程 - 无法打印用户输入

css - 打印表格数据

java - 如何为我的 BaseAdapter ListView 实现 Collection 按钮?

java - 从位图 rgb_565 转换为 Mat

java - 集成 openid connect 进行 SPA 应用的最佳方式

java - 当键入的文本是 JTable 中的一行时刷新 JTable

java - 如何正确使用TableCellRenderer对单元格进行颜色匹配

java - 如何检查文本字段是否为空?

C++ - 当我使用 sprintf() 函数时程序崩溃(std::cout 工作正常)

java - 寻找开源 Java Help API