我的程序如下
package xxx;import javax.swing.UIManager;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;import javax.swing.border.*;import java.io.File;
import java.io.*;
import javax.swing.filechooser.FileFilter;/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2006</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */public class MyFileFilter implements ActionListener{
  JFrame f = null;
  JLabel label = null;
  JFileChooser fileChooser = null;
  public MyFileFilter() {
    f = new JFrame("MyFileFilter");
    Container contentPane = f.getContentPane();
    JButton b = new JButton("打开文件");
    b.addActionListener(this);
    label = new JLabel("", JLabel.CENTER);
    label.setPreferredSize(new Dimension(150, 30));
    contentPane.add(label, BorderLayout.CENTER);
    contentPane.add(b, BorderLayout.SOUTH);
    f.pack();
    f.setVisible(true);
    f.addWindowListener(new WindowAdapter() {
      public void windoClosing(WindowEvent e) {
        System.exit(0);
      }
    });
  }  public static void main(String[] args) {
   new   FileFilterDemo();   
  }  public void actionPerformed(ActionEvent e) {
    fileChooser = new JFileChooser("E:");
    fileChooser.addChoosableFileFilter(new JAVAFileFilter("class"));
    fileChooser.addChoosableFileFilter(new JAVAFileFilter("java"));
    int result = fileChooser.showOpenDialog(f);
    if (result == JFileChooser.APPROVE_OPTION) {
      File file = fileChooser.getSelectedFile();
      label.setText("您选择了:" + file.getName() + "文件");
    }
    else if (result == fileChooser.CANCEL_OPTION) {
      label.setText("您没有选择文件!");
    }
  }
} class JAVAFileFilter extends FileFilter{
   String ext;
   public JAVAFileFilter(String ext) {
     this.ext=ext;
   }   public boolean accept(File file) {
     if (file.isDirectory())
       return true;
     String fileName = file.getName();
     int index = fileName.lastIndexOf('.');
     if (index > 0 && index < fileName.length() - 1) {
       String extension = fileName.substring(index + 1).toLowerCase();
       if (extension.equals(ext))
         return true;
     }
     return false; }
public String getDescription(){
   if(ext.equals("java"))
        return  "JAVA Source(*.java)";
   if(ext.equals("class"))
       return  "JAVA  Class File(*.class)";
   return "";}
}