JFileChooser filters

image, java, jfilechooser, swing

Solution

I am putting a JFileChooser in my program, but that only takes images.

For a list of types supported by that JRE on that OS, use `ImageIO`.

FileFilter imageFilter = new FileNameExtensionFilter(
    "Image files", ImageIO.getReaderFileSuffixes());

Types seen - Java 1.6/Windows 7

bmp
jpg
jpeg
wbmp
png
gif

Note: don't hard-code that list! It might change from version to version, and OS to OS. E.G.

- I am not surprised that Windows has support to load BMP, but does that come up in a Mac?

- Seeing WBMP alerted me to the existence of such a format!

That list would have many more formats if jai was installed.

Filter as it appears in a chooser

Problem

I am putting a `JFileChooser` in my program, but that only takes images. So I decided to add filters: Code ``` import javax.swing.*; public class fileChooser { public static void main(String[] args) { JPanel panel = new JPanel(); final JFileChooser fc = new JFileChooser(); int file = fc.showOpenDialog(panel); fc.addChoosableFileFilter(new ImageFilter()); fc.setAcceptAllFileFilterUsed(false); } } ``` I got that straight from the Java tutorials. But Eclipse underlines the following as an error: ``` fc.addChoosableFileFilter(new ImageFilter()); fc.setAcceptAllFileFilterUsed(false); ``` Any suggestions?

Original source