Infatti funziona così il codice li sopra. Uso la classe interna (MyWindowListener) solo per gestire la chiusura della seconda finestra che apri.
Se un pulsante ha un ascoltatore (ActionListener) quando lo premi viene chiamato il metodo actionPerformed().
Quindi per aprire la finestra quando clicko faccio semplicemente:
codice:
Scelta s = new Scelta();
s.setSize(200,200);
s.setVisible(true);
Le classi le puoi gestire come meglio credi. Di solito è buona norma utilizzare un file per ogni classe. Quindi devi solo copiare ogni classe in un nuovo file e salvarlo con il nome della classe (ricordandoti le varie import).
Ti puoi fare la classe GUI che estende JFrame (e che di conseguenza è una finestra), che è la finestra principale (quella che io ho chiamato proprio Finestra). Al suo interno dichiari i componenti che vuoi e volendo (se ti serve) i riferimento alle altre finestre.
Tornando alle 3 righe di codice qui sopra nel tag CODE, non puoi scriverle "nel JButton" in quanto il JButton è solo il componente. Se lo clicchi allora viene generato un evento ActionEvent, e viene in pratica gestito in actionPerformed(). Se hai più bottoni registrati con un ActionListener, ipotizzando di avere il codice scritto come li sopra (ma con più bottoni), dovrai anche ottenere il bottone che è stato premuto, così risponderai a quella determinata azione. Ci sono due modi per conoscere quale bottone è stato premuto:
1)
codice:
public void actionPerformed(ActionEvent ae) {
String title = ae.getText();
if(title.equals("Testo Bottone1")) {
}
else if(title.equals("Testo Bottone2")) {
}
// altro eventuale codice...
}
Altro metodo:
2)
codice:
public void actionPerformed(ActionEvent ae) {
JButton btn = (JButton) ae.getSource();
if(btn == scelta) {
// apri la finestra creandola come ho mostrato sopra...
}
}
Nel primo caso confronti quindi il testo del JButton, nel secondo l'oggetto. Bada bene che il confronto avviene con il riferimento dell'oggetto; nel caso qui sopra scelta è il JButton dichiarato come nel mio precedente codice. Il metodo getSource() ritorna appunto chi ha generato l'evento.
Qui c'è l'API di JButton: http://docs.oracle.com/javase/7/docs...g/JButton.html