我在 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()));
}
我添加了一个println
以evt
查看会发生什么并验证我的 keylistener 是否有效。当我构建并运行我的应用程序时,我意识到输出似乎总是有一个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。