Salve mi servirebbe un esempio COMPLETO di JFIleChooser che carichi solo i file .xml.
GRAZIE!!!
Potete gentilmente mostrarmelo...
Salve mi servirebbe un esempio COMPLETO di JFIleChooser che carichi solo i file .xml.
GRAZIE!!!
Potete gentilmente mostrarmelo...
Ecco:Originariamente inviato da xxdavide84xx
Salve mi servirebbe un esempio COMPLETO di JFIleChooser che carichi solo i file .xml.
Ci sono solo alcune cose da tenere presente:codice:import javax.swing.*; import javax.swing.filechooser.*; JFileChooser chooser = new JFileChooser (); chooser.addChoosableFileFilter (new FileNameExtensionFilter ("File XML", "xml")); int returnVal = chooser.showOpenDialog (parent); if (returnVal == JFileChooser.APPROVE_OPTION) { // ..... }
1) FileNameExtensionFilter è una classe disponibile solo a partire da Java 6 ed è una estensione della classe astratta FileFilter (nota: di javax.swing.filechooser.FileFilter, non di java.io.FileFilter che ha lo stesso nome ma è una interfaccia ed è diversa).
Se si vuole realizzare il filtro anche con una versione precedente di Java, è necessario definire in qualche modo una apposita implementazione di FileFilter. Ad esempio così:
2) Il JFileChooser per default ha il filtro "Tutti i file". Se si vuole toglierlo, basta fare inizialmente:codice:import java.io.File; chooser.addChoosableFileFilter (new FileFilter () { public boolean accept (File f) { return f.isDirectory() || f.getName().endsWith (".xml"); } public String getDescription () { return "File XML"; } });
codice:chooser.removeChoosableFileFilter (chooser.getAcceptAllFileFilter ());
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Ma l'ho anche spiegato: FileNameExtensionFilter è una classe disponibile solo a partire da Java 6.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Si io vorrei farlo con la versione precedente alla 6...
Se io creo:
mi da i segenti errori:codice:import javax.swing.*; import java.io.*; class TextEditor extends JFrame { private JFileChooser fileChooser; public TextEditor() { fileChooser = new JFileChooser(); chooser.addChoosableFileFilter(new FileNameExtensionFilter("File XML", "xml")); int returnVal = chooser.showOpenDialog(parent); if ( returnVal == JFileChooser.APPROVE_OPTION ) { File f = fileChooser.getSelectedFile(); // qui viene eseguita l'operazione sul file System.out.println(f); } } public static void main(String argv[]) { TextEditor t = new TextEditor(); } }
C:\Documents and Settings\Administrator\Desktop\DAVIDE\TextEditor.j ava:9: cannot find symbol
symbol : class FileNameExtensionFilter
location: class TextEditor
chooser.addChoosableFileFilter(new FileNameExtensionFilter("File XML", "xml"));
^
C:\Documents and Settings\Administrator\Desktop\DAVIDE\TextEditor.j ava:9: cannot find symbol
symbol : variable chooser
location: class TextEditor
chooser.addChoosableFileFilter(new FileNameExtensionFilter("File XML", "xml"));
^
C:\Documents and Settings\Administrator\Desktop\DAVIDE\TextEditor.j ava:10: parent is not public in java.awt.Component; cannot be accessed from outside package
int returnVal = chooser.showOpenDialog(parent);
^
C:\Documents and Settings\Administrator\Desktop\DAVIDE\TextEditor.j ava:10: cannot find symbol
symbol : variable chooser
location: class TextEditor
int returnVal = chooser.showOpenDialog(parent);
^
4 errors
Mentre se io faccio così:
funziona, ma mi da tutte le estensioni di file...codice:import javax.swing.*; import java.io.*; class TextEditor extends JFrame { private JFileChooser fileChooser; public TextEditor() { fileChooser = new JFileChooser(); int response = fileChooser.showOpenDialog(this); if(response==JFileChooser.APPROVE_OPTION) { File f = fileChooser.getSelectedFile(); // qui viene eseguita l'operazione sul file System.out.println(f); } } public static void main(String argv[]) { TextEditor t = new TextEditor(); } }
Potresti dirmi come farlo....
(sai dovrei metterlo dentro al mio programma e cambiare document = builder.parse(new File("C:\\Documents and settings\\Administrator\\Desktop\\DAVIDE\\Dom\\tes i.xml")); col percorso dato da JFileCHooser)
Originariamente inviato da xxdavide84xx
Si io vorrei farlo con la versione precedente alla 6...
Potresti dirmi come farlo....![]()
![]()
Ma l'ho spiegato chiaramente e ampiamente nella mia risposta iniziale. Leggila bene. C'è la parte in cui spiego che per versioni precedenti si deve realizzare una apposita implementazione e ho pure fatto l'esempio.
Più di così .....
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Purtroppo ho letto ma non ho capito...
JFileChooser e TextArea
Io ho la versione 1.6 di Java installata sul pc, ma poi dovrebbero averla anche quelli che utilizzano il programma per fare in modo che vada, giusto?
Mi spieghi anche che valori possono andare in fileChooser.showOpenDialog() oltre a this e null???
codice:import javax.swing.*; import java.io.*; class TextEditor extends JFrame { private JFileChooser fileChooser; public TextEditor() { fileChooser = new JFileChooser(); int response = fileChooser.showOpenDialog(this); if(response==JFileChooser.APPROVE_OPTION) { File f = fileChooser.getSelectedFile(); // qui viene eseguita l'operazione sul file System.out.println(f); } } public static void main(String argv[]) { TextEditor t = new TextEditor(); } }
Se usi FileNameExtensionFilter sì, solo con Java 6 o superiore. Ma in ogni caso se hai il JDK 6 e vuoi compilare in modo che l'applicazione sia lanciabile anche con JVM più vecchie, oltre ovviamente a non usare classi/metodi di Java 6, devi anche compilare specificando le opzioni -source / -target, per la questione della versione dei file .class generati.Originariamente inviato da xxdavide84xx
Io ho la versione 1.6 di Java installata sul pc, ma poi dovrebbero averla anche quelli che utilizzano il programma per fare in modo che vada, giusto?
Il metodo ha come parametro un Component, cioè un qualunque componente AWT/Swing rispetto a cui il chooser sarà "modale". In genere come parent si usa una finestra top-level, come per es. il JFrame o JDialog della applicazione.Originariamente inviato da xxdavide84xx
Mi spieghi anche che valori possono andare in fileChooser.showOpenDialog() oltre a this e null???
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Scusa se ti salto da un discorso ad un'altro, ma vorrei chiederti una cosa...
ti ricordi il mio programma immagino, visto che mi hai aiutato.
Se io volessi metterlo in internet.
Cosa mi consigli un Applet o una Servlet?
(Ci sarebbe molto da modificare secondo te?)
Sì, quello del file XML con i nodi degli stili ecc...Originariamente inviato da xxdavide84xx
Scusa se ti salto da un discorso ad un'altro, ma vorrei chiederti una cosa...
ti ricordi il mio programma immagino, visto che mi hai aiutato.
Le applet e le servlet sono due mondi completamente diversi. Una applet gira all'interno di un browser sul client, una servlet gira sul server e si occupa solo di generare i contenuti HTML ecc...Originariamente inviato da xxdavide84xx
Se io volessi metterlo in internet.
Cosa mi consigli un Applet o una Servlet?
(Ci sarebbe molto da modificare secondo te?)
Nel tuo programma fai sicuramente solo delle System.out.println, che in una applet non sono visibili (vengono però loggate nella 'console' di Java). E poi visto che leggi da file, ci sono altre questioni di sicurezza nelle applet.
Insomma ... già una applet ha un comportamento e un ciclo di vita diverso da una applicazione e comunque bisogna vedere che cosa/come vuoi visualizzare.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet