PDA

Visualizza la versione completa : Java-classe FileDialog


esses
24-11-2002, 22:07
Non riesco ad intercettare la chiusura di un oggetto FileDialog.
Gli ho associato un oggetto WindowListener ma facendo il debug mi accorgo che non entra nele procedure d'evento WindowClosed etc...
Io vorrei fare comparire il contenuto del file nella finestra principale al momento della chiusura della finestra di dialogo ma dato che non riesco ad intercettare questo evento mi è impossibile farlo.
Come posso intercettare la chiusura di una finestra FileDialog ?

claudibus
24-11-2002, 22:29
non uso molto AWT, ma FileDialog non è una Dialog modale?

l.golinelli
25-11-2002, 08:49
Mah... Io uso il package Swing e uso FileChooser...

Do un'occhiata alla Documentazione...

:ciauz: :ciauz: :ciauz:

ghinz
25-11-2002, 08:52
Come dice claudibus la classe FileDialog apre una finestra di dialogo modale, quindi non ti serve intercettare la chiusura della finestra perchè l'applicazione si blocca quando apri il dialog e riparte dall'istruzione successiva quando clicchi ok o annulla:


java.awt.FileDialog fd = new java.awt.FileDialog(this,"Scegli il file da caricare",java.awt.FileDialog.LOAD);
fd.setVisible(true);
String s = fd.getDirectory() + fd.getFile();
System.out.println(s);Dopo questo nella variabile 's' hai il nome del file e puoi usarlo per creare un (ad es.) FileInputStream per leggerlo e farne quello che vuoi.

l.golinelli
25-11-2002, 10:57
:quote: :quote: :quote:

Si infatti il FileDialog lo usi per scegliere un File... Quindi se annulli si chiude semplicemente altrimenti ti restituisce il File che hai selezionato...

:ciauz:

esses
25-11-2002, 14:33
si ma quando si chiude io vorrei fare vedere il contenuto del file in un oggetto
TextArea, ma per fare questo devo intercettare l'evento di chiusura per mettere li' il codice di lettura del file, altrimenti in quale procedura d'evento posso metterlo?

claudibus
25-11-2002, 14:47
nella riga successiva.

ghinz
25-11-2002, 15:27
Poni di aver creato un JFrame che contiene un JButton di nome 'pulsante' e una JTextArea di nome 'area'.
Alla pressione di 'pulsante' metti:

java.awt.FileDialog fd = new java.awt.FileDialog(this,"Scegli il file da caricare",java.awt.FileDialog.LOAD);
fd.setVisible(true);
// --- qui l'applicazione si blocca in attesa che tu scelga un file e prema ok o annulla
// --- quando hai premuto ok o annulla riprende l'esecuzione dall'istruzione qui sotto
String s = fd.getDirectory() + fd.getFile();
FileRead fr = new FileReader(s);
// --- qui metti le istruzioni per leggere il file dentro una variabile String di nome 'testo'
// --- riempi la textarea
area.setText(testo);Capito?

esses
25-11-2002, 21:00
ragazzi ho risoloto tutto.Mi ero dimenticato cosa significa finestra modale.
Ma quando ho visto che tutti battevate su questa definizione mi sono ricordato che l'esecuzione ricomincia alla istruzione successiva a quella che chiama la Dialog.
Grazie per l'input :-):jam:

Loading