/* * 1.1 code. */ import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class KeyEventDemo extends Applet implements KeyListener, ActionListener { TextArea displayArea; TextField typingArea; String newline; public void init() { Button button = new Button("Clear"); button.addActionListener(this); typingArea = new TextField(20); typingArea.addKeyListener(this); displayArea = new TextArea(5, 20); displayArea.setEditable(false); setLayout(new BorderLayout()); add("Center", displayArea); add("North", typingArea); add("South", button); newline = System.getProperty("line.separator"); } /** Handle the key typed event from the text field. */ public void keyTyped(KeyEvent e) { displayInfo(e, "KEY TYPED: "); } /** Handle the key pressed event from the text field. */ public void keyPressed(KeyEvent e) { displayInfo(e, "KEY PRESSED: "); } /** Handle the key released event from the text field. */ public void keyReleased(KeyEvent e) { displayInfo(e, "KEY RELEASED: "); } /** Handle the button click. */ public void actionPerformed(ActionEvent e) { //Clear the text components. displayArea.setText(""); typingArea.setText(""); //Return the focus to the typing area. typingArea.requestFocus(); } /* * We have to jump through some hoops to avoid * trying to print non-printing characters * such as Shift. (Not only do they not print, * but if you put them in a String, the characters * afterward won't show up in the text area.) */ protected void displayInfo(KeyEvent e, String s){ String charString, keyCodeString, modString, tmpString; char c = e.getKeyChar(); int keyCode = e.getKeyCode(); int modifiers = e.getModifiers(); if (Character.isISOControl(c)) { charString = "key character = (an unprintable control character)"; } else { charString = "key character = '" + c + "'"; } keyCodeString = "key code = " + keyCode + " (" + KeyEvent.getKeyText(keyCode) + ")"; modString = "modifiers = " + modifiers; tmpString = KeyEvent.getKeyModifiersText(modifiers); if (tmpString.length() > 0) { modString += " (" + tmpString + ")"; } else { modString += " (no modifiers)"; } displayArea.append(s + newline + " " + charString + newline + " " + keyCodeString + newline + " " + modString + newline); } }