当前位置: 首页 > 面试题库 >

KeyTypedEvent KeyEvent的KeyCode始终为0吗?

衡翰翮
2023-03-14
问题内容

我在NetBeans IDE中有一个Java Swing应用程序。

我制作了一个表单,并将KeyListener附加到我的各种控件上,如下所示:

    jButton1.addKeyListener(new java.awt.event.KeyAdapter() {
        public void keyTyped(java.awt.event.KeyEvent evt) {
            keyTypedEvent(evt);
        }
    });

keyTypedEvent定义如下:

private void keyTypedEvent(java.awt.event.KeyEvent evt) 
{                               
System.out.println(evt);
appendDisplay(String.valueOf(evt.getKeyChar()));
}

我在上添加了printlnevt以查看会发生什么并验证我的键侦听器确实起作用。在构建和运行应用程序时,我意识到输出似乎总是有一个keycode = 0

为了验证这一点,我将println更改为evt.getKeyCode(),并且始终返回0。

我可能完全误解了KeyCode的功能,但我认为它会与Oracle文档中的值相对应:

http://docs.oracle.com/javase/7/docs/api/constant-
values.html#java.awt.event.KeyEvent.VK_ESCAPE

例如,VK_ESCAPE的值为27。


问题答案:

keyTyped()事件仅用于产生字符输入的键。如果您想知道何时按下或释放任何键,则需要实现keyPressed()keyReleased()

从KeyEvent
API:

“键键入”事件是较高级别的事件,通常不依赖于平台或键盘布局。它们是在输入Unicode字符时生成的,并且是查找有关字符输入的首选方法。

对于按下按键和释放按键的事件,getKeyCode方法返回事件的keyCode。对于键类型的事件,getKeyCode方法始终返回VK_UNDEFINED。



 类似资料:
  • 问题内容: 我不知道我的代码正在发生什么。我没有错误,也没有回应。我正在将数据写入串行端口,并通过激活等待响应, 但未触发此事件,inputstream.available()始终返回0。可能是什么问题?我在Linux中使用RXTX。 编辑 我在主要方法上打开端口,并在应用程序内的按钮单击事件上发送消息。 问题答案: 不能用于进程间通信(包括串行),因为它仅检查当前进程中(输入缓冲区中)是否有可用

  • 下面是片段。请注意,我已经恢复到以前的提交,因此丢失了最近的修改,但请查看我编写的代码,然后才注意到始终等于0() 以下是当检测到活动后按: 以下是NoteActivity接收结果调用的方式。 null 我在我的项目上浪费了很多重要的时间,只是想知道是什么使resultCode和requestCode的值丢失了我发送的值。 任何帮助和指导都将不胜感激。非常感谢!

  • 我总是用下面的代码得到。 这是我的process代码 但如果coderesultcode正常工作。 这是我的

  • 我开发了一个Android应用程序,提示日历应用程序编辑事件。 我使用打开日历。编辑并保存事件后,在中始终为0。 无论我在日历应用程序中单击“保存”还是“取消”,总是给出0。 另外,我需要从日历intent中获取数据,但是onActivityResult中的intent“data”也返回null。 有人能解释为什么会这样吗?有没有办法知道用户点击“保存”还是“取消”?

  • 我尝试将元素映射到[]以获得角度。但如果我检查了对象的长度,则始终为0。。 屏幕如果I控制台.log(对象) 我做错了什么?

  • 我有一个项目,使用SonarQube来分析我的代码。正如标题所示,尽管我有多个JUnit测试,但在SQ报告(在我的服务器上)中覆盖率指标总是显示为0。我目前运行以下命令 在詹金斯建立我的项目时(詹金斯·马文项目)。 我有类似的问题前一段时间在不同的项目。我设法通过这篇文章解决了它。然而,这一次却无济于事。搜索了一下,找到了第1条和第2条(还有一些想法类似的)。两人都提出了一些好建议,但不幸的是,没