Hola a todos, seguimos con los eventos vamos a ver la manera de que nuestras aplicaciones desencadenen acciones en función de las teclas que pulsemos en el teclado. Para realizar esto tendremos que utilizar la interfaz KeyListener:
Esta interface implementa
tres métodos, estos métodos reciben un parámetro de tipo KeyEvent que
veremos su uso. El método KeyPressed es cuando tenemos el dedo
pulsado sobre la tecla, el método KeyReleased es cuando
quitamos el dedo de la tecla y KeyTyped sería la suma de los
dos métodos anteriores, es decir, cuando pulsamos y quitamos el dedo de la
tecla.
Todas las interfaces que tengan más de un método en su interior podemos utilizar la clase KeyAdapter:
Como siempre es recomendable ir a la API de Java para conocer más
estos métodos y clases.
Cuando pulsamos una tecla podemos obtener
información, por ejemplo, la letra a, podemos saber que se ha pulsado la tecla
que corresponde a la letra a. Todas las teclas del teclado tienen un código
interno, viene a ser parecido a algo así: VK_a para la letra
a… la clase KeyEvent sí que nos proporciona información sobre
el código interno de todas las teclas que componen el teclado. Esta clase
almacena un campo de clase por cada uno de los códigos de las teclas y les da
un nombre y un valor numérico que en la API de Java lo podéis ver.
Bien, pues vamos a la práctica para verlo,
creamos una nueva clase con el siguiente código:
package event;
import
javax.swing.JFrame;
import javax.swing.JPanel;
public class EventosTeclado
{
public static void main(String[] args) {
MarcoTeclas mimarco=new MarcoTeclas();
mimarco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
class MarcoTeclas
extends JFrame{
public MarcoTeclas() {
setVisible(true);
setBounds(700, 300, 600, 450);
}
}
Lo primero que vamos a hacer es crearnos un oyente para que detecte en este programa las teclas que pulsamos al que voy a llamar EventoTeclado que va a implementar la interfaz KeyListener:
Sin embargo, nos da un error si nos situamos
sobre KeyListener, el primero es que debemos importar el paquete:
import
java.awt.event.KeyListener;
Y después tenemos que declarar todos los
métodos:
class EventoTeclado implements KeyListener{
@Override
public void
keyTyped(KeyEvent e) {
// TODO
Auto-generated method stub
}
@Override
public void
keyPressed(KeyEvent e) {
// TODO
Auto-generated method stub
}
@Override
public void
keyReleased(KeyEvent e) {
// TODO
Auto-generated method stub
}
}
Luego tenemos que determinar cuando quiero
que se desencadene la acción, es decir, que método voy a utilizar. Le vamos a
indicar que nos dé información de la tecla pulsada y que nos lo imprima en
pantalla por lo que tendremos que utilizar el método KeyPressed,
existe un método que nos devuelve el código de la letra es getKeyCode()
public void
keyPressed(KeyEvent e) {
int codigo=e.getKeyCode();
System.out.println(codigo);
}
Creamos una variable de tipo entero al que
vamos almacenar el código interno de la tecla llamado al método getKeyCode().
Hay que indicarle al marco cual es el objeto oyente:
public MarcoTeclas() {
setVisible(true);
setBounds(700, 300, 600, 450);
EventoTeclado tecla = new EventoTeclado();
addKeyListener(tecla);
}
Creamos una instancia de la clase
EventoTeclado, ponemos el objeto a la escucha mediante addKeyListener.
Si probamos la aplicación y pulsamos la tecla L vemos en la consola que se
muestra el número 76
Esto ha sido todo, si tenéis dudas podéis
hacerlo a través de los comentarios del blog. Un saludo!
5.2.1 Cambios de estado de la ventana
<< >> 5.4 EVENTOS DE RATÓN
No hay comentarios:
Publicar un comentario