Buongiorno a tutti,
sto da poco iniziando ad utilizzare java e sto cercando di capire come funzionano le GUI. Il mio problema è il seguente :
sto scrivendo una semplice applicazione che premuto un pulsante mi faccia apparire una label con una scritta. Il codice è il seguente:
/* CLASSE DELLA GUI */
import javax.swing.*;
public class GUI extends JFrame {
JLabel l = new JLabel();
JButton b = new JButton ("Cliccami e ti saluto");
GUI ()
{
super("PROVA 1");
JPanel p = new JPanel();
p.add(b);
p.add(l);
this.add(p);
this.setSize(500,500);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
/* CLASSE DELL'AZIONE */
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class AZIONE {
GUI u = new GUI ();
public void saluto ()
{
u.b.addActionListener(new ActionListener() {
public void actionPerformed (ActionEvent ae)
{
u.l.setText("ciaooo");
}
});
}
}
/* CLASSE PRINCIPALE */
public class PROVA1 {
public static void main(String[] args) {
GUI g = new GUI();
AZIONE a = new AZIONE();
a.saluto();
}
}
Il problema principale è che se metto
GUI g = new GUI();
all'interno della classe PROVA1, quando lo mando in esecuzione, mi vengono aperti due frame. Se tolgo questa riga il frame viene aperto una volta sola. Qualcuno mi saprebbe spiegare il motivo?
Grazie