I have a Java Swing application in the NetBeans IDE.
I made a form and attached a KeyListener to my various controls as such:
jButton1.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
keyTypedEvent(evt);
}
});
and keyTypedEvent is defined as such:
private void keyTypedEvent(java.awt.event.KeyEvent evt)
{
System.out.println(evt);
appendDisplay(String.valueOf(evt.getKeyChar()));
}
I added a println to the evt to see what happens and to verify that my keylistener does work.
When I build and run my application, I realized that the output always seems to have a keycode = 0
To verify this, I had changed my println to be evt.getKeyCode() and it is always returning 0.
I could be completely misinterpreting what KeyCode does, but I thought that it would coorespond with the values in Oracle’s documentation here:
http://docs.oracle.com/javase/7/docs/api/constant-values.html#java.awt.event.KeyEvent.VK_ESCAPE
For instance, VK_ESCAPE has a value of 27.
The
keyTyped()event is only used for keys that produce character input. If you want to know when any key is pressed or released, you need to implementkeyPressed()orkeyReleased().From the KeyEvent API: