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?

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top