Difettosa JButton listener di eventi
-
03-10-2019 - |
Domanda
ho creato nella mia applicazione Java Swing una finestra principale con un JButton. Ho aggiunto a questo pulsante una classe listener di eventi (che implementa l'interfaccia ActionListener), che, ogni volta che il pulsante viene premuto, il lancio di una finestra "pop-up". Il metodo funziona bene quando il pulsante viene premuto, tranne quando il pulsante viene premuto per la prima volta, in quanto non fa nulla. Qualcuno sa il motivo di tale comportamento?
Soluzione
Un modo più semplice è forse quello di fornire una AbstractAction
. Si potrebbe provare il metodo descritto di seguito. (Essa mostra un popup-finestra quando il pulsante viene premuto.)
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);
}
}
Altri suggerimenti
Distacco il codice del gestore di eventi e come si collega al tasto di guida potrebbe. Si potrebbe desiderare di prendere un rapido sguardo a questo Sun Tutorial