Java 没有接收到按键?

标签 java swing overriding public keylistener

我有一个程序,它生成一个 JFrame,然后在它上面生成一个 JPanel。对于该程序,我尝试实现 KeyListener,然后添加方法(对于两个组件),但该程序没有拾取我的任何击键。我做错了什么?

编辑

这是我的代码。它是创建 JFrame 的类的一部分。它仍然无法识别 ESC 键的按下情况。

@Override
public void keyTyped(KeyEvent e) {

}

@Override
public void keyPressed(KeyEvent e) {
    int keyCode = e.getKeyCode();

    if(keyCode == KeyEvent.VK_ESCAPE){
        System.out.println("Hi");

    }else{
        System.out.println("Hello");

    }

}

@Override
public void keyReleased(KeyEvent e) {

}

最佳答案

如果没有您的代码,我只能告诉您,通常当人们问这个问题时,他们不知道接口(interface) KeyListener 包含三个方法,如 Agusti-N 在 their answer here 中所述。 :

void keyTyped(KeyEvent)
void keyPressed(KeyEvent)
void keyReleased(KeyEvent)

如果您使用keyTyped并且使用event.getKeyCode()来检查输入的字符,则这将不起作用。您应该对 keyTyped 使用 getKeyChar(),对 keyPressedkeyReleased 使用 getKeyCode() >。否则你会得到null。 仅当您没有任何其他选择时才应使用此选项,在大多数情况下您想使用 Key Bindings .

关于Java 没有接收到按键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15690477/

相关文章:

java - 使用 Eclipse WindowBuilder 创建 GUI

java - 如何防止我的 JScrollPane/JTextArea 超出包含的 JTabbedPane?

java - 覆盖 Java 中的成员变量(变量隐藏)

java - JTable:清除行选择时删除单元格周围的边框

Perl,通过调用其父程序覆盖子程序 |引用

java - 为什么调用错误的方法是: Strange inheritance behaviour

java - Spring Data JDBC 反转 OneToOne 导航

java - UcanaccessSQLException : Unexpected page type 1

java - 尽管 120 fps,渲染图像仍然闪烁

java - 使用 Gradle、JUnit 和 Mockito 的模块化 Java 的推荐项目结构