Ho una classe SettingsDialog che si occupa di disegnare un pannello con 3 pulsanti. Due di questi pulsanti sono JButton (ok e cancel) ed uno è un JCheckBox (ck)
Ho una classe SettingsListeners che implementa l'interfaccia actionListeners. Questa classe la devo associare ai bottoni ok e cancel della classe precedente.
Da una terza classe voglio assemblare il mio programma quindi devo associare il listeners al pannello grafico con codice di questo tipo:
SettingsListeners sl = new SettingsListeners();
SettingsDialog sd = new SettingsDialog( sl );
Però ho il seguente problema:
La classe SettingsListeners ha il seguente codice
public void actionPerformed(ActionEvent event) {
if (event.getActionCommand().equals("OK")) {
boolean state = ck.isSelected();
if (state)
fai qualcosa..
else
fai qualcosa...
}
}
Siccome nel codice della classe SettingsListeners utilizzo la variabile ck, definita nella classe SettingsDialog, non posso istanziare la classe SettingsListeners finchè non ho istanziato la classe SettingsDialog.
La classe SettingsDialog ha il seguente del codice
public SettingDialog(SettingsListeners sl) {
JCheckBox ck = new JCheckBox ();
JButton ok = new JButton();
JButton cancel = new JButton();
ok.addActionListeners( sl )
cancel.addActionListeners( sl )
}
Siccome nel codice della classe SettingsDialog utilizzo la classe SettingsListeners che non posso istanziare per il motivo detto prima sono bloccato.
Come faccio a risolvere questo problema?