Cómo detectar pulsaciones de teclas en Java

Escrito por matthew cory | Traducido por beatriz sánchez
  • Comparte
  • Twittea
  • Comparte
  • Pin
  • E-mail
Cómo detectar pulsaciones de teclas en Java
Saber cuándo un usuario pulsa una tecla determinada es importante. (Comstock/Comstock/Getty Images)

Aunque la mayoría de las necesidades de obtener entradas de usuario se manejan de forma bastante sencilla en Swing a través de componentes estándar, por ejemplo, obtener el texto a través de un componente JTextField, a veces es necesario obtener las pulsaciones de teclas exactas del usuario. Quizás una combinación de teclas determinada generará una determinada acción, o puede que quieras evitar determinadas pulsaciones de teclas para que no tengan el efecto predeterminado, como permitir sólo caracteres alfabéticos en una caja de texto. Sea cual sea el escenario, conseguir la tecla que el usuario ha pulsado es sencillo.

Nivel de dificultad:
Moderadamente fácil

Otras personas están leyendo

Necesitarás

  • Java SDK
  • Un entorno de desarrollo integrado, como Eclipse o NetBeans, recomendado pero no necesario

Lista completaMinimizar

Instrucciones

  1. 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; }

  2. 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())); } });

  3. 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.

Consejos y advertencias

  • Revisa el resto de métodos disponibles en el parámetro KeyEvent proporcionado. Puedes usarlo para indicar que el usuario ha pulsado una tecla de modificación, como "Alt" o "Ctrl", junto con una tecla determinada, y diferencia entre las teclas shift izquierda y derecha, por ejemplo. Explora también los otros dos eventos disponibles en el KeyListener, keyTyped y keyReleased, ya que abarcan versiones ligeramente distintas de eventos de teclado y pueden ser más aplicables a situaciones diferentes.

No dejes de ver

Filtrar por:
  • Mostrar todos
  • Artículos
  • Galerías de fotos
  • Videos
Ordenar:
  • Más relevante
  • Más popular
  • Más reciente

No se encuentran artículos disponibles

No se encuentran slideshows disponibles

No se encuentran videos disponibles