Défectueux écouteur d'événement DButton
-
03-10-2019 - |
Question
Je l'ai créé dans mon application Java Swing une fenêtre principale avec un JButton. J'ai ajouté à ce bouton une classe d'écouteur d'événement (qui implémente l'interface ActionListener) qui, chaque fois que le bouton est cliqué, lance une fenêtre « pop-up ». La méthode fonctionne bien lorsque le bouton est cliqué, sauf lorsque le bouton est cliqué pour la première fois, comme il ne fait rien. Est-ce que quelqu'un sait la raison derrière un tel comportement?
La solution
Une façon plus simple est peut-être de fournir un AbstractAction
. Vous pouvez essayer l'approche décrite ci-dessous. (Il montre une fenêtre pop-up lorsque le bouton est cliqué.)
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);
}
}
Autres conseils
Affichage du code du gestionnaire d'événements, ainsi que la façon dont vous attachez au bouton pourrait vous aider. Vous pouvez jeter un coup d'œil à ce Sun Tutorial