JFileChooser文件过滤的实现

今天突然想到打开对话框中的文件过滤是如何实现,查了下资料,发现比较简单的就
     能实现。
     下面是核心代码:
     private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
JFileChooser chooser=new JFileChooser();
chooser.setCurrentDirectory(new File("."));
final List list=new ArrayList();
list.add("jpg");
list.add("png");
list.add("png");

chooser.setFileFilter(new javax.swing.filechooser.FileFilter() {

            @Override
            public boolean accept(File f) {
               if(f.isDirectory())return true;
               String name=f.getName();
               int p=name.lastIndexOf('.');
               if(p==-1)return false;
               String suffix=name.substring(p+1).toLowerCase();
               return list.contains(suffix);
            }

            @Override
            public String getDescription() {
                return "image files";
            }
       
});
int r=chooser.showOpenDialog(this);
if(r!=JFileChooser.APPROVE_OPTION)return;

}
当然这段代码唯一实现的就是过滤功能。里面用了一个FileFilter匿名类实现文件的过滤。
其中里面的两个方法如accept都是覆盖了父类的操作方法。accept返回一个布尔值,判断文件是否
符合你的要求,符合返回真,否这返回假。这是一个回调函数,参数File f,就是被传进去的文件,然后
再按你的逻辑进行过滤。
这段代码过滤出文件夹,后缀名为png,jpg,gif的文件

 

——————————————————————————————

新网站上线 欢迎大家

网站交易中心 在这里你可以购买或者出售你的网站。
网站信息发布中心 在这里有各种交易信息的发布。同时提供
一些软件的免费使用(附有源码)。
网站博客系统 这里你可以注册自己的博客。一个账户无限量博客
联系方式: [email protected]
QQ:563828566
MSN:[email protected] 
                                
     

你可能感兴趣的:(String,list,image,File)