Swing JFC Java

/*
Java Swing, 2nd Edition
By Marc Loy, Robert Eckstein, Dave Wood, James Elliott, Brian Cole
ISBN: 0-596-00408-7
Publisher: O'Reilly 
*/
// MyFilterChooser.java
//Just a simple example to see what it takes to make one of these filters work.
//
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.filechooser.FileFilter;
public class MyFilterChooser extends JFrame {
  public MyFilterChooser() {
    super("Filter Test Frame");
    setSize(350, 200);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    Container c = getContentPane();
    c.setLayout(new FlowLayout());
    JButton openButton = new JButton("Open");
    final JLabel statusbar = new JLabel(
        "Output of your selection will go here");
    openButton.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent ae) {
        String[] pics = new String[] { "gif", "jpg", "tif" };
        String[] audios = new String[] { "au", "aiff", "wav" };
        JFileChooser chooser = new JFileChooser();
        chooser.addChoosableFileFilter(new SimpleFileFilter(pics,
            "Images (*.gif, *.jpg, *.tif)"));
        chooser.addChoosableFileFilter(new SimpleFileFilter(".MOV"));
        chooser.addChoosableFileFilter(new SimpleFileFilter(audios,
            "Sounds (*.aiff, *.au, *.wav)"));
        int option = chooser.showOpenDialog(MyFilterChooser.this);
        if (option == JFileChooser.APPROVE_OPTION) {
          if (chooser.getSelectedFile() != null)
            statusbar.setText("You chose "
                + chooser.getSelectedFile().getName());
        } else {
          statusbar.setText("You canceled.");
        }
      }
    });
    c.add(openButton);
    c.add(statusbar);
    setVisible(true);
  }
  public static void main(String args[]) {
    MyFilterChooser mfc = new MyFilterChooser();
  }
}
//SimpleFileFilter.java
//A straightforward extension-based example of a file filter. This should be
//replaced by a "first class" Swing class in a later release of Swing.
//
class SimpleFileFilter extends FileFilter {
  String[] extensions;
  String description;
  public SimpleFileFilter(String ext) {
    this(new String[] { ext }, null);
  }
  public SimpleFileFilter(String[] exts, String descr) {
    // Clone and lowercase the extensions
    extensions = new String[exts.length];
    for (int i = exts.length - 1; i >= 0; i--) {
      extensions[i] = exts[i].toLowerCase();
    }
    // Make sure we have a valid (if simplistic) description
    description = (descr == null ? exts[0] + " files" : descr);
  }
  public boolean accept(File f) {
    // We always allow directories, regardless of their extension
    if (f.isDirectory()) {
      return true;
    }
    // Ok, it's a regular file, so check the extension
    String name = f.getName().toLowerCase();
    for (int i = extensions.length - 1; i >= 0; i--) {
      if (name.endsWith(extensions[i])) {
        return true;
      }
    }
    return false;
  }
  public String getDescription() {
    return description;
  }
}