麻烦大家帮忙实现一个文件过滤器~(in java)

来源:百度知道 编辑:UC知道 时间:2024/05/23 04:56:50
今天看编程书的时候 使用java.io.FilenameFilter构造了一个只显示*.java的过滤器
我想到了 我们经常在 PS图片的时候 用PS软件打开文件的时候可以 自动过滤出.bmp .jpg .gif等等 格式的图片

我不知道怎么写 多联合过滤~请教大家写法
以只显示“*.bmp *.jpg *.gif”3种图片的过滤器为例~ 谢谢
File fDir=new File(File.separator);
String strFile="JavaLesson"+File.separator+"Lesson6";
File f=new File(fDir,strFile);
String[] names=f.list(new FilenameFilter()
{
public boolean accept(File dir,String name)
{
return name.indexOf(".java")!=-1;
}
});
for(int i=0;i<names.length;i++)
{
System.out.println(names[i]);
}
需要像这样的格式 不知道怎么实现 你给我的是Swing的资源啊!

public class TextFilter extends FileFilter{
public boolean accept(File f){
String n=f.getName();
return n.endsWith(".bmp") || n.endsWith(".jpg") || n.endsWith (".gif");
}
}

sun的API上对这个方法public void setFilenameFilter(FilenameFilter filter)的介绍不是有这样一句话:
Filename filters do not function in Sun's reference implementation for Microsoft Windows.
就是说: Microsoft Windows 的文件名过滤器在 Sun 的参考实现中不起作用。
但是swing包中的 JFileChooser 就没有问题了,这是一段测试代码:
JFileChooser chooser = new JFileChooser();
ImageFilenameFilter iff = new ImageFilenameFilter();
chooser.setFileFilter(new ImageFilenameFilter());
int value = chooser.showOpenDialog(f); //f是父窗体

class ImageFilenameFilter extends javax.swing.filechooser.FileFilter {

public ImageFilenameFilter(){
System.out.println("ita aisa aseaew");
}
public boolean accept(File f) {
if(f.getName().endsWi