Java重写文件过滤器
Java中如果要在JFileChooser里添加文件过滤器,必须继承FileFilter抽象类,并实现其方法。
import java.io.File; import java.util.ArrayList; import java.util.List; import javax.swing.filechooser.FileFilter; //实现FileFilter抽象类,其他自定义FileFilter皆为它的子类 public class MyFileFilter extends FileFilter { private String description; private List<String> extensions = new ArrayList<String>(); //添加需要过滤的后缀名 public void addExtension(String extension){ if(!extension.startsWith(".")){ extension = "." + extension; } this.extensions.add(extension.toLowerCase()); } //添加对话框描述 public void addDescription(String description){ this.description = description; } //下面为必须重写的方法 @Override public boolean accept(File f) { if(f.isDirectory()) return true; String name = f.getName().toLowerCase(); for(String s : extensions){ if (name.endsWith(s)) return true; } return false; } @Override public String getDescription() { return this.description; } }
使用时直接创建对象并添加后缀名和描述信息即可。也可以给每一种过滤器创建一个类,比如Java文件过滤器。
/** * Java文件过滤器 */ public class JavaFileFilter extends MyFileFilter { public JavaFileFilter(){ super(); this.addExtension("java"); this.addDescription("Java文件(*.java)"); } }
版权声明:本文为博主原创文章,未经博主允许不得转载。