ecco qua un po' di codice già pronto...
codice:
private void getJFileChooser(String mode) {
JFileChooser jFileChooser = new JFileChooser();
jFileChooser.addChoosableFileFilter(new MyFilter());
File file = new File("");
// APRI FILE
if (mode == "OPEN") {
int returnVal = jFileChooser.showOpenDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
try{
ripristinaCondizioniIniziali();
jFileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
file = jFileChooser.getSelectedFile();
Reader in = new FileReader(file);
jTextArea.read(in,null);
setTitle(file.getName());
}catch(Exception e){
e.printStackTrace();
}
}
}
// SALVA FILE
if (mode == "SAVE") {
int returnVal = jFileChooser.showSaveDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
try{
ripristinaCondizioniIniziali();
file = jFileChooser.getSelectedFile();
Writer out = new FileWriter(file);
jTextArea.write(out);
setTitle(file.getName());
}catch(Exception e){
e.printStackTrace();
}
}
}
}
// PER AGGIUNGERE DEI FILTRI A UN FILE CHOOSER
jFileChooser.addChoosableFileFilter(new TextFilter());
jFileChooser.addChoosableFileFilter(new JavaCodeFilter());
e le funzioni di filtro :
abstract class SuffixAwareFilter
extends javax.swing.filechooser.FileFilter {
public String getSuffix(File f) {
String s = f.getPath(), suffix = null;
int i = s.lastIndexOf('.');
if(i > 0 && i < s.length() - 1)
suffix = s.substring(i+1).toLowerCase();
return suffix;
}
public boolean accept(File f) {
return f.isDirectory();
}
}
class JavaCodeFilter extends SuffixAwareFilter {
public boolean accept(File f) {
boolean accept = super.accept(f);
if( ! accept) {
String suffix = getSuffix(f);
if(suffix != null)
accept = super.accept(f) || suffix.equals("java");
}
return accept;
}
public String getDescription() {
return "Java Source Code Files(*.java)";
}
}
class TextFilter extends SuffixAwareFilter {
public boolean accept(File f) {
String suffix = getSuffix(f);
if(suffix != null)
return super.accept(f) || suffix.equals("txt");
return false;
}
public String getDescription() {
return "Text Files(*.txt)";
}
}