FileFilter lässt die Anzeige und Auswahl bestimmter Dateitypen zu. Im folgenden Beispiel sollen lediglich JAVA-Quelldateien (oder alle Dateien) angezeigt werden:
import java.io.File;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;
public class DateiAuswahl {
public static void main (String [] args) {
JFileChooser fc = new JFileChooser();
fc.setDialogTitle("DateiAuswahl");
fc.setFileFilter(new FileFilter() {
public boolean accept(File f) {
return f.getName().toLowerCase().endsWith(".java") || f.isDirectory();
}
public String getDescription() {
return "Java-Applikationen(*.java)";
}
});
if (fc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
System.out.println(file.getName());
}
else System.out.println("Keine Auswahl :-(");
System.exit(0);
}
}
Die FileFilter - Schnittstelle wird im obigen Beispiel durch eine so genannte innere anonyme Klasse implementiert: Der gesamte Code wird als Argument der JFileChooser - Methode setFileFilter() angegeben. Dabei müssen jedenfalls die accept() - Methode und die getDescription() - Methode verwendet werden. Im Beispiel werden Dateiverzeichnisse (die mit der File - Methode isDirectory() klassifiziert werden) und Dateien mit der Endung ``.java'' angezeigt.
Die JFileChooser - Methode showOpenDialog(null) liefert einen Wert, der der jeweils betätigten Schaltfläche zugeordnet wird. Mit Hilfe geeigneter Methoden (im Beispiel getSelectedFile() kann der Name der ausgewählten Datei weiterverwendet werden. Wird nicht die ``Öffnen''-Schaltfläche betätigt, so wird der Hinweis ``Keine Auswahl :-(`` ausgegeben und das Programm mit Hilfe der System - Methode exit(0) beendet.