Cómo detectar pulsaciones de teclas en Java

Saber cuándo un usuario pulsa una tecla determinada es importante.
Por matthew cory

Paso 1

Crea una sencilla clase que cree y muestre un JFrame de momento:

import java.awt.Dimension; import java.lang.reflect.InvocationTargetException;

import javax.swing.JFrame; import javax.swing.SwingUtilities;

public final class KeyPressTester implements Runnable {

public static void main(String[] args) throws InterruptedException, InvocationTargetException { SwingUtilities.invokeAndWait(new KeyPressTester()); }

@Override public void run() { frame = new JFrame("KeyPress Tester");

frame.setSize(new Dimension(800, 600)); frame.setVisible(true); }

private JFrame frame; }


Paso 2

Modifica el método run() para añadir un KeyListener al marco con la siguiente implementación:

frame.addKeyListener(new KeyListener() {

@Override public void keyTyped(KeyEvent e) { }

@Override public void keyReleased(KeyEvent e) { }

@Override public void keyPressed(KeyEvent e) { System.out.println("Key Character: " + e.getKeyChar() + "; Key Code: " + KeyEvent.getKeyText(e.getKeyCode())); } });


Paso 3

Compila y ejecuta el programa. Si pulsas una tecla cuando el marco tiene el foco, deberías ver una salida de consola que describe la tecla pulsada, incluyendo el carácter de texto actual (si está disponible) y el texto de la tecla, como Shift, Ctrl, Retroceso, etc.