// TestKeyCode.java note differences pressed vs released, // letters numbers vs up down shift // auto repeat import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import javax.swing.text.*; public class TestKeyCode { public static void main(String args[])throws Exception { JFrame frame=new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JTextField nameTextField=new JTextField(); frame.add(nameTextField,BorderLayout.NORTH); System.out.println("TestKeyCode.java running"); System.out.println("KeyEvent : keyText / getKeyChar keyCode"); KeyListener keyListener=new KeyListener() // gets Pressed, Released and Typed events { public void keyPressed(KeyEvent keyEvent) { printIt("Pressed",keyEvent); } public void keyReleased(KeyEvent keyEvent) { printIt("Released",keyEvent); } public void keyTyped(KeyEvent keyEvent) { printIt("Typed",keyEvent); } private void printIt(String title, KeyEvent keyEvent) { int keyCode=keyEvent.getKeyCode(); String keyText=KeyEvent.getKeyText(keyCode); System.out.println(title+" : "+keyText+" / "+keyEvent.getKeyChar()); switch(keyCode) { case KeyEvent.VK_LEFT: System.out.println(" VK_LEFT"); break; case KeyEvent.VK_RIGHT: System.out.println(" VK_RIGHT"); break; case KeyEvent.VK_UP: System.out.println(" VK_UP"); break; case KeyEvent.VK_DOWN: System.out.println(" VK_DOWN"); break; case KeyEvent.VK_SHIFT: System.out.println(" VK_SHIFT"); break; case KeyEvent.VK_SPACE: System.out.println(" VK_SPACE"); break; case KeyEvent.VK_ENTER: System.out.println(" VK_ENTER"); break; case KeyEvent.VK_CONTROL: System.out.println(" VK_CONTROL"); break; case KeyEvent.VK_A: System.out.println(" VK_A"); break; case KeyEvent.VK_0: System.out.println(" VK_0"); break; default: System.out.println(" "); } } }; // end KeyListener nameTextField.addKeyListener(keyListener); frame.setTitle("TestKeyCode"); frame.setSize(250,100); frame.setVisible(true); } // end main } // end class TestKeyCode