salve ragazzi, è possible salvare i dati di una tabella attraverso un JFileChooser?
ciao e grazie
salve ragazzi, è possible salvare i dati di una tabella attraverso un JFileChooser?
ciao e grazie
Eeeh??Originariamente inviato da superpisu
salve ragazzi, è possible salvare i dati di una tabella attraverso un JFileChooser?
ciao e grazie
JFileChooser serve solo e unicamente per presentare all'utente una interfaccia per selezionare un file. Cosa poi ci fai con l'oggetto (o gli oggetti ... si può anche usare la seleziona multipla) di tipo java.io.File che il JFileChooser ti fornisce ..... beh, è un'altra questione.
Puoi a quel punto aprire il file e scriverci quello che vuoi.![]()
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
ciao andbin, ascolta forse ho scritto male io..
volevo fare una cosa del tipo, che vai sul menu FILE poi premi SALVA e veniva salvato il contenuto della JTable, dove dice l'utente, ecco quindi attraverso quel jFileChooser..
e complicato farlo?
sto provando a fare qualcosina in java, fino ad esso ho fatto la stampa della JTable e quella mi riesce, poi ho fatto un menu da dove posso salvare l'intero DB su un file txt e quello va bene,
anche se non scelgo io la destinazione su dove salvare quel txt ma viene salvato nella stessa cartella del programma..codice:if (o instanceof JMenuItem) { if (o==salva) { File f=new File("elenco.txt"); FileOutputStream fos=new FileOutputStream(f); PrintStream ps=new PrintStream(fos); for (int i=0;i<temp.size();i++){ ps.println(temp.get(i)); ps.println("");
ora volevo fare questa cosa, però non trovo niente in giro..
consiglio?
ciao andbin
No, si è capito benissimo.Originariamente inviato da superpisu
ciao andbin, ascolta forse ho scritto male io..
Ripeto: JFileChooser serve solo per presentare all'utente l'interfaccia di selezione di un file. Basta guardare la documentazione ufficiale di JFileChooser o leggere il relativo tutorial della Sun.
Il minimo di codice per usare un JFileChooser è:
dove 'parent' è il Component che fa da parente e in genere è il frame della tua interfaccia grafica.codice:JFileChooser chooser = new JFileChooser(); int returnVal = chooser.showSaveDialog (parent); if (returnVal == JFileChooser.APPROVE_OPTION) { File f = chooser.getSelectedFile (); // .... usa f .... }
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
ciao andbin, ho guardato un pò la documentazione e sono riuscito a fare delle cose, tipo che avevo creato un JTextComponent editor dove scrivevo qualcosa dentro..
poi quando premevo il pulsante SALVA facevo
e mi salvava il contenuto dell'editor dove dicevo io..codice:int response = fileChooser.showSaveDialog(this); if(response==JFileChooser.APPROVE_OPTION) { try { File f = fileChooser.getSelectedFile(); Writer out = new FileWriter(f); editor.write(out);
questo funziona e va bene, ma come faccio a fare la stessa cosa con una JTable?
quindi invece dell'editor io gli devo passare il contenuto della tabella..
ciao e grazie andbin
Beh, no alt. Una tabella è una cosa un po' più complessa.Originariamente inviato da superpisu
questo funziona e va bene, ma come faccio a fare la stessa cosa con una JTable?
quindi invece dell'editor io gli devo passare il contenuto della tabella..
ciao e grazie andbin
Non puoi salvare direttamente il contenuto di JTable. Dipende in che formato vuoi salvare i dati della tabella, ad esempio ogni riga del JTable può essere scritta su una riga del file mettendo eventualmente un separatore tra i dati delle colonne.
Ma devi farlo tu: leggi le dimensioni della tabella, scansioni righe/colonne, per ogni cella ottieni un Object su cui invochi toString() e scrivi la String sul file come vuoi.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
ciao andbin, no vabbè il metodo toString() l'avevo già usato ma esce un pò confusionario sul txt, pensavo si potesse proprio salvare la tebella così come la vedo, anche perchè il toString() su un file di excel non mi inserisce i valori nelle celle ma li scrive come se scrivesse su di un blocco note.
vorrà dire che me lo tengo sul txt eh eh..
un'altra cosa, quando si apre la finestra su dove salvare il file, in basso non mi permette di scegliere l'estensione da dargli, devo scrivere io ad esempio prova.txt
come faccio ad esempio a fargli capire che me lo deve salvare lui in automatico su txt.
ciao e grazie
Se devi poi importare il file in excel, allora puoi scriverlo in un formato più adatto ad excel. Ad esempio il formato CSV.Originariamente inviato da superpisu
ciao andbin, no vabbè il metodo toString() l'avevo già usato ma esce un pò confusionario sul txt, pensavo si potesse proprio salvare la tebella così come la vedo, anche perchè il toString() su un file di excel non mi inserisce i valori nelle celle ma li scrive come se scrivesse su di un blocco note.
Quelli sono gli "user choosable file filters", se ne possono aggiungere quanti ne vuoi con addChoosableFileFilter(). Però devi avere un oggetto FileFilter. Se usi Java 6. c'è la classe FileNameExtensionFilter, altrimenti c'è da farsi una classe apposita, vedi un esempio nel mio JavaTips.Originariamente inviato da superpisu
un'altra cosa, quando si apre la finestra su dove salvare il file, in basso non mi permette di scegliere l'estensione da dargli, devo scrivere io ad esempio prova.txt
come faccio ad esempio a fargli capire che me lo deve salvare lui in automatico su txt.
ciao e grazie
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
ciao andbin, mi devi scusare ma non riesco a far funzionare nessuna delle due cose che mi hai detto..ti dico che uso l'ultima versione di java quindi la 6 sarà..
ciao e grazie
ciao andbin, per il fatto delle estensioni al click sul pulsante SALVA, avevo fatto questo:
questo però mi fa vedere solo i file .txt quando apro il JFileChooser(ma non era questo che volevo).codice:FileFilter filter = new FileFilter() { public String getDescription() { return ".txt"; } public boolean accept(File f) { return f.getName().toLowerCase().endsWith(".txt"); } }; fileChooser = new JFileChooser(); fileChooser.addChoosableFileFilter(filter); int response = fileChooser.showSaveDialog(this); if(response==JFileChooser.APPROVE_OPTION) { try{ File f = fileChooser.getSelectedFile(); ecc ecc
io volevo che se inserisco come nome "Tabella", mi deve essere salvata sul desktop come Tabella.txt oppure Tabella.xls in base a quello che scelgo in basso alla finestra del JFileChooser.
perchè sennò sono costretto a scriverci io direttamente Tabella.txt.
per l'altro punto quello che mi dicevi del CSV non ho capito che devo fare.
ciao e grazie andbin
ps ho java 6