jueves, 3 de noviembre de 2011

Manejo basico del teclado


// Demostración de los eventos de pulsación de tecla.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class DemoTeclas extends JFrame implements KeyListener {
   private String linea1 = "", linea2 = "", linea3 = "";
   private JTextArea areaTexto;

   // configurar GUI
   public DemoTeclas()
   {
      super( "Demostración de eventos de pulsación de tecla" );

      // establecer objeto JTextArea
      areaTexto = new JTextArea( 10, 15 );
      areaTexto.setText( "Oprima cualquier tecla en el teclado..." );
      areaTexto.setEnabled( false );
      areaTexto.setDisabledTextColor( Color.blue );
      getContentPane().add( areaTexto );

      addKeyListener( this );  // permitir al marco procesar eventos de teclas
     
      setSize( 350, 100 );
      setVisible( true );

   } // fin del constructor de DemoTeclas

   // manejar evento de pulsación de cualquier tecla
   public void keyPressed( KeyEvent evento )
   {
      linea1 = "Se oprimió tecla: " + evento.getKeyText( evento.getKeyCode() );
      establecerLineas2y3( evento );
   }

   // manejar evento de liberación de cualquier tecla
   public void keyReleased( KeyEvent evento )
   {
      linea1 = "Se soltó tecla: " + evento.getKeyText( evento.getKeyCode() );
      establecerLineas2y3( evento );
   }

   // manejar evento de pulsación de una tecla de acción
   public void keyTyped( KeyEvent evento )
   {
      linea1 = "Se escribió tecla: " + evento.getKeyChar();
      establecerLineas2y3( evento );
   }

   // establecer segunda y tercera líneas de salida
   private void establecerLineas2y3( KeyEvent evento )
   {
      linea2 = "Esta tecla " + ( evento.isActionKey() ? "" : "no " ) +
         "es una tecla de acción";

      String temp = evento.getKeyModifiersText( evento.getModifiers() );

      linea3 = "Teclas modificadoras oprimidas: " +
         ( temp.equals( "" ) ? "ninguna" : temp );

      areaTexto.setText( linea1 + "\n" + linea2 + "\n" + linea3 + "\n" );
   }

   public static void main( String args[] )
   {
      JFrame.setDefaultLookAndFeelDecorated(true);
      DemoTeclas aplicacion = new DemoTeclas();
      aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
   }

} // fin de la clase DemoTeclas