Java: 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 extends
javax.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's setFileFilter
method.
To use the filter from the example above:
JFileChooser chooser = new JFileChooser();
chooser.setFileFilter(new SQLfilter());
chooser.showOpenDialog(null);