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 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);