declaraciones para los métodos 

keyPressed

,

keyReleased

 y 

keyTyped

, cada uno de los cuales recibe un objeto 

KeyEvent

 como argumento. La clase 

KeyEvent

 es una subclase de 

InputEvent

. El método 

keyPressed

 es lla-

mado en respuesta a la acción de oprimir cualquier tecla. El método 

keyTyped

 es llamado en respuesta a la acción 

de oprimir una tecla que no sea una 

tecla de acción

. (Las teclas de acción son cualquier tecla de dirección, 

Inicio,

Fin,Re Pág,Av Pág, cualquier tecla de función, Bloq Num,Impr Pant,Bloq Despl,Bloq Mayús y Pausa). El método 

keyReleased

 es llamado cuando la tecla se suelta después de un evento 

keyPressed

 o 

keyTyped

.

La aplicación de las fi guras 11.36 y 11.37 demuestra el uso de los métodos de 

KeyListener

. La clase 

Demo-

Teclas

 implementa la interfaz 

KeyListener

, por lo que los tres métodos se declaran en la aplicación.

El constructor (fi guras 11.36, líneas 17 a 28) registra a la aplicación para manejar sus propios eventos de 

teclas, utilizando el método 

addKeyListener

 en la línea 27. Este método se declara en la clase 

Component

, por 

lo que todas las subclases de 

Component

 pueden notifi car a objetos 

KeyListener

 acerca de los eventos para ese 

objeto

Component

.

Figura 11.36

  |  Manejo de eventos de teclas. (Parte 1 de 2).

 1 

// Fig. 11.36: MarcoDemoTeclas.java

 2 

// Demostración de los eventos de pulsación de teclas.

 3 

import

 java.awt.Color;

 4 

import

 java.awt.event.KeyListener;

 5 

import

 java.awt.event.KeyEvent;

 6 

import

 javax.swing.JFrame;

 7 

import

 javax.swing.JTextArea;

 8 
 9 

public class

 MarcoDemoTeclas 

extends

 JFrame 

implements

 KeyListener 

 10 

{

 11  

private

 String linea1 = 

""

;

 // primera línea del área de texto

 12  

private

 String linea2 = 

""

;

 // segunda línea del área de texto

 13  

private

 String linea3 = 

""

;

// tercera línea del área de texto

 14  

private

 JTextArea areaTexto; 

// área de texto para mostrar la salida

 15 
 16  

// constructor de MarcoDemoTeclas

 17  

public

 MarcoDemoTeclas()

 18  

{

 19  

 

super

(

"Demostración de los eventos de pulsacion de teclas"

 );

 20 
 21  

 

areaTexto = 

new

 JTextArea( 

10

,

15

 ); 

// establece el objeto JTextArea

 22  

 

areaTexto.setText(

"Oprima cualquier tecla en el teclado..."

 );

 23  

 

areaTexto.setEnabled(

false

 ); 

// deshabilita el área de texto

 24  

 

areaTexto.setDisabledTextColor(

Color.BLACK

 ); 

// establece el color del texto

 25  

 

add( areaTexto ); 

// agrega areaTexto a JFrame

 26 
 27  

 

addKeyListener(

this

 ); 

// permite al marco procesar los eventos de teclas

 28  

}

// fin del constructor de MarcoDemoTeclas

 29 
 30  

// maneja el evento de oprimir cualquier tecla

 31  

public void

 keyPressed( KeyEvent evento )

 32  

{

 33  

 

linea1 = String.format( 

"Tecla oprimida: %s"

,

 

34    

evento.getKeyText( evento.getKeyCode() ) ); 

// imprime la tecla oprimida

 35  

 

establecerLineas2y3( evento );

 // establece las líneas de salida dos y tres

 36  

}

// fin del método keyPressed

 37 
 38  

// maneja el evento de liberar cualquier tecla

 39  

public void

 keyReleased( KeyEvent evento )

 40  

{

 41  

 

linea1 = String.format( 

"Tecla liberada: %s"

,

 

42    

evento.getKeyText( evento.getKeyCode() ) ); 

// imprime la tecla liberada

 43  

 

establecerLineas2y3( evento ); 

// establece las líneas de salida dos y tres

11.16 Manejo de eventos de teclas 

511

11_MAQ_CAP_11.indd511

4/19/081:26:17AM