detector de eventos defectuoso JButton
-
03-10-2019 - |
Pregunta
he creado en mi aplicación Java Swing una ventana principal con un JButton. He añadido a este botón una clase de detector de eventos (que implementa la interfaz ActionListener) que, cada vez que se hace clic en el botón, abre una ventana "pop-up". El método funciona bien cuando se hace clic en el botón, excepto cuando se hace clic en el botón por primera vez, ya que no hace nada. ¿Alguien sabe la razón de tal comportamiento?
Solución
Una forma más sencilla es tal vez para proporcionar una AbstractAction
. Puede probar con el enfoque descrito a continuación. (Se muestra una ventana emergente ventana cuando se hace clic en el botón.)
import java.awt.*;
import java.awt.event.ActionEvent;
import javax.swing.*;
public class FrameTest {
public static void main(String[] args) {
JFrame jf = new JFrame("Demo");
Container cp = jf.getContentPane();
cp.setLayout(new FlowLayout());
cp.add(new JButton(new AbstractAction("Button Text") {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "Hello World");
}
}));
jf.setSize(200, 200);
jf.setVisible(true);
}
}
Otros consejos
Publicar el código del controlador de eventos, así como la forma en que va a conectar a la ayuda de los botones pueden. Es posible que desee echar un rápido vistazo a este Sun Tutorial