Ho cercato di utilizzare classi che implementano ActionListener per rispondere all'input dell'utente. Sto costantemente notando che per un listener di azioni per comunicare l'evento ad altri oggetti, deve contenere l'oggetto. Mi piace,
L'oggetto che voglio aggiornare quando viene fatto clic su action_src:
public class Display_Field {
JTextField display;
public Display_Field ( JButton action_src ) {
action_src.addActionListener( new Open_Dialog_Click( this ) );
}
public void setText( String text ) {
display.setText( text );
}
}
L'ActionListener che ho intenzione di aggiungere a action_src:
public class Open_Dialog_Click implements ActionListener {
private Display_Field display;
public void actionPerformed( ActionEvent action ) {
JFileChooser chooser = new JFileChooser();
chooser.showOpenDialog( null );
display.setText( chooser.getSelectedFile().getName() );
}
public Open_Dialog_Click( Display_Field display ) {
this.display = display;
}
}
Ci sono così tante convoluzioni! Come, il display deve essere costruito con un pulsante che aggiunge un ActionListener che deve essere costruito con lo schermo ...
Esiste un modo meno complesso per consentire il flusso di dati tra i componenti?
Ho preso in considerazione l'idea di creare una classe centrale che ospita tutti gli ascoltatori, fungendo da collegamento per qualsiasi comunicazione intercomponente, ma sembra che la classe stia facendo troppo per il suo bene. ... o è così che si fa dopotutto?