使用 JFileChooser 的 addChoosableFileFilter(FileFilter filter) 方法添加多个 javax.swing.filechooser.FileFilter。对于每种类型的文件,你继承实现一个 FileFilter,或者实现一个 FileFilter 但可以通过不同参数构造对各种类型文件的过滤器,把这些实例添加到 JFileChooser 中去。

解决方案 »

  1.   

    /*
     * @(#) Test.java
     */package jamesfancy;import java.io.File;import javax.swing.JFileChooser;
    import javax.swing.filechooser.FileFilter;class MyFileFilter extends FileFilter {
        
        protected String ext;
        protected String description;
        
        public MyFileFilter(String ext, String description) {
            this.ext = ext.toLowerCase();
            this.description = description;
        }    public boolean accept(File f) {
            if (f.isDirectory()) {
                return true;
            }
            
            if (f.getName().toLowerCase().endsWith(ext)) {
                return true;
            }
            
            return false;
        }    public String getDescription() {
            return description;
        }
    }public class Test {    public static void main(String[] args) {
            JFileChooser chooser = new JFileChooser();
            chooser.addChoosableFileFilter(new MyFileFilter(".txt", "Text Files"));
            chooser.addChoosableFileFilter(new MyFileFilter(".htm", "HTML Files"));
            chooser.addChoosableFileFilter(new MyFileFilter("", "All Files"));        chooser.showOpenDialog(null);
        }
    }