Dovrei salvare un file ma quando apro la finestra di salvataggio tramite:
JFileChooser fc = new JFileChooser();
fc.showSaveDialog(SalvaMappa);
Posso salvare ma vorrei che in automatico venisse inserita l'estensione .txt
Qualcuno può dirmi come fare?
![]()
![]()
Dovrei salvare un file ma quando apro la finestra di salvataggio tramite:
JFileChooser fc = new JFileChooser();
fc.showSaveDialog(SalvaMappa);
Posso salvare ma vorrei che in automatico venisse inserita l'estensione .txt
Qualcuno può dirmi come fare?
![]()
![]()
nomeFile=nomeFile+".txt" può andare bene?![]()
no visto che vorrei che quando si apre la finestra di salvataggio come tipo di file esca in automatico .txt
A me sembra un'ottima soluzione...nomeFile=nomeFile+".txt" può andare bene?
Beh, se vuoi che nella finestra di dialogo ci sia scritto file di testo, aggiungi un FileFilter.no visto che vorrei che quando si apre la finestra di salvataggio come tipo di file esca in automatico .txt
Pero' l'estensione sul file salvato la devi mettere comunque tu.
P.s. Se usi Java 6 puoi usare direttamente la classe FileNameExtensionFiltercodice:JFileChooser fc = new JFileChooser(); FileFilter filter = new FileFilter() { public boolean accept(File f) { if(f.isAbsolute()) { return true; } String extension = f.getName(); if (extension != null) { if (extension.endsWith("txt")) { return true; } else { return false; } } return false; } public String getDescription() { return "File di testo"; } }; fc.addChoosableFileFilter(filter); fc.showSaveDialog(SalvaMappa);
il metodo è ok io avevo risolto creando la classe che estendeva FileFilter..
ma non so perchè mi da errore su addChoosableFileFilter
Da eclipse: The method addChoosableFileFilter(FileFilter) in the type JFileChooser is not applicable for
the arguments (FileFilter)
non capisco il motivo..
mi sembra assurdo ma è così ...![]()
![]()
![]()
puoi postare il codice che ti da errore?
Da quando istanzi il FileFilter fino alla riga in cui chiami addChoosableFileFilter.
ho ricopiato il tuo codice ( copia e incolla )![]()
Forse hai importato la classe sbagliata
codice://ERRATO import java.io.FileFilter; import javax.swing.filechooser.FileFilter; //GIUSTO
Si così va .. però ho trovato un metodo che serve sia per il save che per il load che mi fa più comodo la scrivo non si sa mai serva a qualcuno:
Ci si crea una nuova classe che estende FileFilter:
import java.io.File;
import javax.swing.filechooser.FileFilter;
class Filtro extends FileFilter {
protected String description;
protected String extension;
protected Filtro() {
description = ".txt";
extension = ".txt";
}
public String getDescription() {
return description;
}
public boolean accept(File f) {
if (f.isDirectory())
return true;
String path = f.getAbsolutePath();
for (int i = 0; i < extension.length(); i++) {
if (path.endsWith(extension)
&& (path.charAt(path.length() - extension.length()) == '.'))
return true;
}
return false;
}
}
e poi dove serve il filtro:
JFileChooser fc = new JFileChooser();
Filtro txtFiltro=new Filtro();
fc.setFileFilter(txtFiltro);
fc.addChoosableFileFilter(txtFiltro);
![]()
![]()