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?

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top