Detectar botón pulsado con Java Swing

12/Nov/2016 Java , , , , , Deja un comentario

Ya hemos visto lo sencillo que es controlar cuando nos pulsan un botón en Java Swing. Pero qué sucede cuando tenemos varios botones en nuestro formulario. Vamos a ver cómo detectar botón pulsado con Java Swing en el caso de que tengamos varios.

Así que lo primero será construir nuestro formulario Java Swing extendiendo de la clase JFrame.

  1. public class BotonPulsado extends JFrame { ... }

Sobre este formulario vamos a añadir tres botones. Dichos botones los vamos a construir mediante su clase JButton.

  1. private JButton b1, b2, b3;
  2.  
  3. b1 = new JButton("Botón 1");
  4. b2 = new JButton("Botón 2");
  5. b3 = new JButton("Botón 3");

Ahora añadimos a los botones al JFrame mediante el método .add().

  1. add(b1);
  2. add(b2);
  3. add(b3);

Para darle más funcionalidad a nuestro ejemplo de cómo detectar botón pulsado con Java Swing vamos a añadir una etiqueta o JLabel dónde escribiremos el nombre del botón que fue pulsado.

  1. private JLabel etiqueta;
  2.  
  3. etiqueta = new JLabel("");
  4. add(etiqueta);
  5.  

Ahora vamos a crear un ActionListener para cada botón, es decir, le diremos qué clase es la que maneja cuando sea pulsado. Esto lo hacemos mediante el método .addActionListener().

  1. b1.addActionListener(new BotonPulsadoListener());
  2. b2.addActionListener(new BotonPulsadoListener());
  3. b3.addActionListener(new BotonPulsadoListener());

Podríamos crear una clase ActionListener para cada botón, pero eso nos llevaría a tener mucho código, así que para optimizarlo vamos a crear una única clase BotonPulsadoListener que descubrirá que botón fue puslado.

Así creamos una clase privada en nuestra clase principal que implemente el ActionListener.

  1. private class BotonPulsadoListener implements ActionListener{ ... }

El método principal del ActionListener es .actionPerformed() que es el método que se ejecuta ante un click. Este método recibe un ActionEvent. Este objeto ActionEvent es el que contiene diferente información, entre esta información tenemos el nombre del botón que fue pulsado. Esto lo tenemos en el método .getActionCommand().

  1. private class BotonPulsadoListener implements ActionListener{
  2.  
  3. @Override
  4. public void actionPerformed(ActionEvent e) {
  5. etiqueta.setText("Has pulsado el botón " + e.getActionCommand());
  6. }
  7. }

Hemos utilizado el método .setText() sobre la etiqueta para poder cambiar e indicar el nombre al detectar botón pulsado con Java Swing.

Vídeos sobre Java


¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*