当前位置: 首页 > 知识库问答 >
问题:

Java不接收按键?

容俊豪
2023-03-14

我有一个程序,它产生一个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) {

}

共有1个答案

宋俊民
2023-03-14

如果没有您的代码,我所能告诉您的是,通常当人们问这个问题时,他们不知道接口KeyListener包含三个方法,正如Agusti-N在他们的回答中所述:

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

如果使用keytyped,并且使用event.getkeycode()检查输入的字符,这将不起作用。对于keytyped,您应该使用getkeychar(),对于keypressedgetkeycode()keyreleased。否则将得到null。只有在没有其他选择的情况下,才应该使用此选项,在大多数情况下,您希望使用键绑定。

 类似资料:
  • 我试图使用我的手机作为GSM调制解调器。我使用SMSLib发送和接收短信用这个调制解调器。问题是,当我的手机(GSM调制解调器)收到短信时,我没有用SMSL通知ib.but代码整体是好的,例如当GSM调制解调器收到呼叫时通知我。我的代码没有任何错误,因为我只使用SMSLib示例代码接收消息。SMSLib示例代码是: 程序输出例如: modem.com4的网关状态更改,旧:停止- 调制解调器信息:制

  • 例如,我如何使用类似这样的内容获得订阅类别等于的主题的观察者 多谢了。

  • 我有简单的测试 为什么maven和intellij不能执行Junit5测试?这方面的工作是什么?surefire版本应该已经支持JUnit5测试。

  • 我有一个很奇怪的问题。 我正在发送广播并设置一些额外内容,但接收者没有收到: 发送: 并收到: 由于某些原因,downloadID为空。有什么提示吗? 谢谢

  • 我要在两个图像视图之间绘制路径,视图与图片相同 此路径从其中一个imageview开始(按鼠标),继续(按鼠标)并在窗格上移动事件,并且必须在另一个imageview结束(按鼠标)。这是第一次鼠标按下在imageviews上没有收到任何鼠标按下事件后的问题,该事件只是在窗格上收到,因为绘制线没有停止。我的代码出了什么问题? 这是我的控制器代码: 请帮帮我。

  • 我重新启动并关闭了缓存 这是我的配置 我读这个是为了产生上面的输出。我在文件上不断收到红色Intellij IDEA图标,其内容如下: 尽管成功地从命令行运行了该程序: 下面是在Intellij IDEA设置(Ctrl+Alt+Shift+S)上设置的Java SDK路径 下面是我的目录(名为Hello)Hello.iml文件的内容: 我以前通过这个删除了所有的JDK实例,我确信只安装了一个Jav