La interfaz KeyListener, nos
KeyListener permite detectar los eventos de
tecleado realizados sobre algún
componente.
2 import [Link]; Líneas 22-24: Aunque sólo necesitemos
3 Para detectar los eventos del
import [Link];
el método una keyPressed, debemos
Pasamos como parámetro
… teclado sobre el JFrame,
Sobrescribimos elsobrescribir
método el resto de los métodos de la
11 clase anónima
public void inicializarComponentes(){ de KeyListener.
12 utilizamos el métodoel cual se manda En este
keyPressed,
[Link](JFrame.EXIT_ON_CLOSE); ejemplo se muestra en
interfaz.
13 [Link](400, addKeyListener.
400);llamar cada vez quekeyReleased:
se utiliza Detecta
el
consola, las teclas
cuando que
se suelta unael usuario
tecla.
14 [Link]("Eventos de teclado");
teclado. presione.
15 keyTyped: Similar a keyPressed, funciona solo con
16 [Link](new KeyListener(){ teclas de caracteres no imprimibles como las flechas
17 del teclado.
18 public void keyPressed(KeyEvent e){
19 [Link]("Se presionó la tecla " + [Link]());
20
21
}
Línea 19: Obtenemos la tecla
22 public void keyReleased(KeyEvent e){} presionada mediante el método
23 getKeyChar de KeyEvent, y la
24 public void keyTyped(KeyEvent e){} imprimimos en la consola.
25
26 });
27 }
…
32 }
KeyAdapter
1 import [Link];
2 import [Link]; Este es el mismo ejemplo pero
3 import [Link]; utilizando la clase abstracta
KeyAdapter en lugar de la
4
…
10 interfaz KeyListener; esto
11 public void inicializarComponentes(){ permite sobrescribir sólo el
12
13
[Link](JFrame.EXIT_ON_CLOSE);
[Link](400, 400);
método que se ocupa.
14 [Link]("Eventos de teclado");
15
16 [Link](new KeyAdapter(){
17 @Override
18 public void keyPressed(KeyEvent e){
19 [Link]("Se presiono la tecla " + [Link]());
20 }
21
22 });
23 }
24
…
28 }
getKeyCode
Otra forma de determinar qué
tecla generó el evento es
mediante el método getKeyCode
de KeyEvent, y las constantes
18 public void keyPressed(KeyEvent e){
19
como VK_ENTER, VK_SPACE, etc:
20 switch([Link]()){
21 case KeyEvent.VK_UP: [Link]("Arriba"); break;
22 case KeyEvent.VK_DOWN: [Link]("Abajo"); break;
23 case KeyEvent.VK_LEFT: [Link]("Izquierda"); break;
24 case KeyEvent.VK_RIGHT: [Link]("Derecha"); break;
25 case KeyEvent.VK_SPACE: [Link]("Espacio"); break;
26 case KeyEvent.VK_ENTER: [Link]("Enter"); break;
27 default: [Link]("Se presionó la tecla " + [Link]());
28 }
29
30 }
El resto de las constantes las puedes encontrar aquí:
[Link]
Más información:
[Link]