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.