5.3 EVENTOS DE TECLADO

 

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