Copyright Derek O'Reilly, Dundalk Institute of Technology (DkIT), Dundalk, Co. Louth, Ireland.
KeyListener Example: (Run Applet)
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class KeyListenerDemo extends JApplet { @Override public void init() { this.setContentPane(new View()); } class View extends JPanel implements KeyListener { private String message = "A"; // initial letter private int x = 100; // Initial coordinates of letter private int y = 100; public View() { super(); this.setBackground(Color.white); // addKeyListener() and setFocusable() must both be included in order to allow key input this.addKeyListener(this); this.setFocusable(true); } @Override public void paintComponent(Graphics g) { super.paintComponent(g); g.drawString(this.message, this.x, this.y); } @Override public void keyPressed(KeyEvent e) { // allow user to select a letter final char c = e.getKeyChar(); if ((c >= 'A') && (c <= 'z')) { this.message = String.valueOf(c); } // allow user to use the shift key if (e.isShiftDown()) { this.setBackground(Color.RED); this.setFont(new Font("timesroman", Font.ITALIC, 60)); } else { this.setBackground(Color.YELLOW); this.setFont(new Font("timesroman", Font.PLAIN, 20)); } // allow user to select an arrow key switch (e.getKeyCode()) { case KeyEvent.VK_LEFT: { this.x--; break; } case KeyEvent.VK_RIGHT: { this.x++; break; } case KeyEvent.VK_UP: { this.y--; break; } case KeyEvent.VK_DOWN: { this.y++; break; } } this.repaint(); } @Override public void keyReleased(KeyEvent e) { } @Override public void keyTyped(KeyEvent e) { } } }
The KeyListener class is used to control keyboard input. KeyListener contains the following methods:
public void keyTyped(KeyEvent e) // only works for alpha keys public void keyPressed(KeyEvent e) // works for all keys
public void keyReleased(KeyEvent e) // works for all keys
In order to use a keyListener(), a conponent must call the two methods:
addKeyListener(this); // add the listener
setFocusable(true); // allow key input
Copyright Derek O' Reilly, Dundalk Institute of Technology (DkIT), Dundalk, Co. Louth, Ireland.