View Single Post
Old 29-05-2009, 09:41   #1
LacioDromBuonViaggio
Senior Member
 
L'Avatar di LacioDromBuonViaggio
 
Iscritto dal: Jul 2008
Città: Sardegna
Messaggi: 1005
[JAVA/Swing] Semplice interfaccia con classi Listener esterne.

Come da titolo, per addentrarmi nel mondo dell'interfacce JAVA (visto che ho un esame il 4 giugno ), sto creando un semplice programmino che consente di caricare, modificare e salvare un banalissimo file di testo.

Dopo aver scritto le classi riguardanti la gestione del file in un package a parte chiamato FileManager, mi sono messo a scrivere l'interfaccia: un frame contenente una JTextArea e un JButton (l'area di testo contiene il testo del file e il bottone consente di salvare nel file il contenuto dell'area di testo).

Ho implementato tutto in una sola classe MainFrame che implementa l'interfaccia ActionListener e funziona senza problemi, il metodo ActionPerformed non fa altro che utilizzare la classe FileManager passandogli il contenuto dell'area di testo e il percorso del file su cui salvare (istanzio new FileManager() dentro il metodo).

Ora quello che mi chiedo è, nel caso volessi creare una interfaccia più complessa (molti più pannelli, bottoni e quindi ascoltatori), come mi devo organizzare.

Mi spiego meglio:

Vorrei racchiudere l'area di testo e il bottone in una classe 'Pannello' a parte che estende JPanel e richiamare la classe pannello dal costruttore di MainFrame (per rendere tutto più ordinato).
Vorrei creare una classe SalvaListener a parte che implementa ActionListener e associarla al bottone di salvataggio.

Il problema è che devo passare all'ascoltatore il contenuto dell'area di testo (della classe Pannello) e il path del file di testo (della classe MainFrame) che servirà alla classe FileManager.

Vorrei evitare di dover passare il path in questo modo:
Mainframe -> Pannello -> SalvaListener -> FileManager (troppi passaggi credo e troppo disordine)
Inoltre se poi volessi creare un'altra classe JMenuBar (da richiamare in MainFrame) con un tasto 'salva' da associare alla classe SalvaListener come gli passo il contenuto dell'area di testo (che trovo in Pannello) e il path (che trovo nel MainFrame)?

Spero di essere stato chiaro, se ci sono problemi mi metto a fare anche lo schema delle classi. Il mio problema è prettamente organizzativo, vorrei che le classi siano abbastanza indipendenti, per cui non mi piace passare parametri dappertutto. Essendo la mia prima interfaccia non so proprio come organizzarla..
__________________
Aeroengine II BBA Black | Asus P5N-T Deluxe 780i | Intel E8400 C0 @4,050Ghz 1,35v + TR Ultra-120 eXtreme | Corsair 2x2GB PC6400 XMS2 DHX @900Mhz 2,15v | XFX 8800 GT 512MB @730/990 + TR HR-03 Rev. A | Tagan TG500-BZ | Zalman ZM-MFC2 Fan Control | WD Raptor 10000rpm 150 GB + 1,5TB | Iiyama ProLite E2607WSV

Ultima modifica di LacioDromBuonViaggio : 29-05-2009 alle 09:47.
LacioDromBuonViaggio è offline   Rispondi citando il messaggio o parte di esso