Uso de código clave en Java

Rupam Yadav 12 octubre 2023
  1. Uso de KeyListener para escuchar códigos clave en Java
  2. Imprima códigos clave y su descripción de texto usando KeyEvent.getKeyText() en Java
Uso de código clave en Java

Hoy veremos los códigos de teclas que representan las teclas de nuestro teclado. Un código clave es un código entero asignado a un objeto KeyEvent.

Uso de KeyListener para escuchar códigos clave en Java

En este ejemplo, creamos un marco y agregamos un campo de entrada con dos etiquetas en la parte inferior. Cuando ingresamos cualquier tecla en nuestro teclado en el campo, las etiquetas darán información sobre las teclas.

En el siguiente programa, creamos una clase JavaKeycodeExample que extiende la clase Frame e implementa la interfaz KeyListener. La clase Frame nos proporciona una ventana para colocar el campo de entrada y las etiquetas, mientras que con la ayuda de la interfaz KeyListener, podemos anular sus tres métodos que nos ayudan a identificar los eventos clave.

En la clase JavaKeycodeExample, creamos dos etiquetas, label1 y label2, y un campo de texto textField que toma la entrada. Inicializamos y configuramos el tamaño de los componentes AWT para agregarlos al Frame.

Agregamos un KeyListener al textField usando addKeyListener(). Implementamos la interfaz KeyListener, por lo que tenemos que anular sus tres métodos que son keyPressed() que registra la tecla presionada, keyTyped() que identifica la tecla escrita, y el último método keyReleased() invoca cuando se suelta la tecla que se presionó.

Para este ejemplo, usamos principalmente el método keyPressed(), que recibe un objeto KeyEvent e cada vez que se presiona una tecla en el campo de entrada. Para presionar el código clave, llamamos al método getKeyCode() usando el objeto KeyEvent y concatenamos el resultado con una cadena.

También obtenemos el texto que representa el código clave usando el método KeyEvent.getKeyText() y pasamos e.getKeyCode(). Por último, colocamos ambas cadenas en las etiquetas label1 y label2.

En la salida, podemos observar que presionamos la tecla k en el teclado en el campo de texto; la primera etiqueta imprime el código de la llave mientras que la segunda etiqueta muestra el texto de la llave.

import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

public class JavaKeycodeExample extends Frame implements KeyListener {
  Label label1;
  Label label2;
  TextField textField;

  public JavaKeycodeExample() {
    label1 = new Label();
    label1.setBounds(120, 220, 200, 20);

    label2 = new Label();
    label2.setBounds(120, 250, 200, 20);

    textField = new TextField();
    textField.setBounds(100, 100, 200, 100);
    textField.addKeyListener(this);

    add(label1);
    add(label2);
    add(textField);
    setSize(350, 350);
    setLayout(null);
    setVisible(true);
  }

  public void keyPressed(KeyEvent e) {
    String keyCodeString = "Last Key Code Pressed : " + e.getKeyCode();
    String keyCodeAsTextString = "You pressed : " + KeyEvent.getKeyText(e.getKeyCode());
    label1.setText(keyCodeString);
    label2.setText(keyCodeAsTextString);
  }

  @Override
  public void keyTyped(KeyEvent e) {}

  @Override
  public void keyReleased(KeyEvent e) {}

  public static void main(String[] args) {
    new JavaKeycodeExample();
  }
}

Producción:

código clave java

Imprima códigos clave y su descripción de texto usando KeyEvent.getKeyText() en Java

Hay muchos códigos de teclas que representan las teclas del teclado, y en este programa imprimimos algunos de ellos. Obtenemos el código de la clave y el texto de la clave que lo describe usando un bucle for que comienza desde 0 y se ejecuta hasta 50.

En el bucle, donde cada valor del bucle puede ser un código clave, obtenemos el texto clave usando la función KeyEvent.getKeyText() y pasamos el valor del código clave.

Tenga en cuenta que no todos los valores enteros representan un código clave y pueden devolver un texto clave de Unknown keyCode; así, comprobamos si la cadena keyCodeText contiene el texto o no. Si es un código de llave válido, imprime tanto el código de llave como el texto del código de llave.

En la salida, observamos que el lado izquierdo de la flecha es el código clave y el lado derecho de la flecha es la descripción de texto del código clave.

import java.awt.event.KeyEvent;

public class JavaKeycodeExample {
  public static void main(String[] args) {
    for (int keyCode = 0; keyCode < 50; ++keyCode) {
      String keyCodeText = KeyEvent.getKeyText(keyCode);
      if (!keyCodeText.contains("Unknown keyCode")) {
        System.out.println(keyCode + " ---> " + keyCodeText);
      }
    }
  }
}

Producción :

3 ---> Cancel
8 ---> Backspace
9 ---> Tab
10 ---> Enter
12 ---> Clear
16 ---> Shift
17 ---> Ctrl
18 ---> Alt
19 ---> Pause
20 ---> Caps Lock
21 ---> Kana
24 ---> Final
25 ---> Kanji
27 ---> Escape
28 ---> Convert
29 ---> No Convert
30 ---> Accept
31 ---> Mode Change
32 ---> Space
33 ---> Page Up
34 ---> Page Down
35 ---> End
36 ---> Home
37 ---> Left
38 ---> Up
39 ---> Right
40 ---> Down
44 ---> Comma
45 ---> Minus
46 ---> Period
47 ---> Slash
48 ---> 0
49 ---> 1
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn