Java Notes
javax.swing.filechooser.FileFilter
See File Filters.By default, a file chooser shows all user files and directories in a file chooser dialog, with the exception of "hidden" files in Unix (those starting with a '.').
To create a custom file filter to show only specific files in a file chooser dialog, subclass
javax.swing.filechooser.FileFilter
and use this with the chooser (see
JFileChooser).
Because there is an interface (
java.io.FileFilter
) and a
class (javax.swing.filechooser.FileFilter
),
use the fully qualified name to prevent conflicts
in any code that also includes java.io.*
.
Creating a chooser FileFilter
Create a class that extendsjavax.swing.filechooser.FileFilter
,
and define two methods:
accept
and getDescription
.
For example, to create a filter that will show all directories and only
files that end with ".sql",
class SQLfilter extends javax.swing.filechooser.FileFilter { public boolean accept(File f) { return f.isDirectory() || f.getName().toLowerCase().endsWith(".sql"); } public String getDescription() { return "SQL files"; } }This example defines the two required methods. Always accept directories so that the user can navigate around the file system.
Setting a FileFilter
Call the JFileChooser'ssetFileFilter
method.
To use the filter from the example above:
JFileChooser chooser = new JFileChooser(); chooser.setFileFilter(new SQLfilter()); chooser.showOpenDialog(null);