03 abril, 2013

Eventos en Swing

Eventos en Java Swing
En Java Swing, cada vez que el usuario interactúa con la aplicación se gatilla un evento, para que una componente determinada reaccione frente a un evento, debe poseer un "escuchador" (Listener) con, al menos, un método determinado que se ejecutará al escuchar un evento en particular, por ejemplo, en el siguiente código se crea un botón que al ser presionado imprime en la salida estándar un mensaje.

JButton boton=new JButton("Un botón");
boton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Apretó el Botón"); }
}
Swing puede utilizar una variedad set de eventos, en la siguiente tabla se resumen los más comunes con sus respectivos "escuchadores".

Ejemplos de eventos y sus escuchadores
Acción que activa un eventoTipo de escuchador
El usario hace un click, presiona Return
en un área de texto o selecciona un menú
ActionListener(Acciones Sobre Componentes)
El usuario escoje un frame (ventana principal)WindowListener
El usuario hace un click sobre una componenteMouseListener
El usuario pasa el mouse sobre una componenteMouseMotionListener
Una componente se hace visibleComponentListener
Una componente adquiere el foco del tecladoFocusListener
Cambia la selección en una lista o tablaListSelectionListener
Si tienen cualquier duda, pueden comunicarse a través de los comentarios. =)

2 comentarios:

  1. se puede crear un vinculo en un boton para que cuando se pulse abra un documento de mi ordenador

    ResponderBorrar
    Respuestas
    1. Hola Juan Carlos, con respecto a tu duda, si se puede, primero te aclaro el escenario y luego te adjunto el código que iría dentro del botón:

      Escenario:
      Paquete: openfile
      Archivos dentro del paquete:
      JOpener (JFrame con método main)
      Opener (Clase Java con el método para abrir el achivo)

      Opener.java
      public class Opener
      {
      public void openFile(File document) throws IOException
      {
      Desktop dt = Desktop.getDesktop();
      dt.open(document);
      }

      }


      JOpener.java (Solo el código del botón)
      private void btnOpenActionPerformed(java.awt.event.ActionEvent evt) {
      try
      {
      // TODO add your handling code here:
      File file1 = new File(txtPath.getText());

      Opener op1 = new Opener();
      op1.openFile(file1);
      }
      catch (IOException ex)
      {
      System.out.println("Error at opening file!!");
      }
      }

      Funcionamiento: Primero tengo en la interfaz un JTextField y el JButton, hago que el usuario meta la ruta deseada del archivo a abrir, y luego al presionar el botón, este se abre con la aplicación por defecto del sistema, en caso de que no este asociado, te pregunta con qué abrir el archivo, espero te sirva.

      Saludos!! =)

      Borrar