JFileChooser文件過濾的實現

 轉載 http://blog.csdn.net/allwefantasy/archive/2008/10/18/3097301.aspx

今天突然想到打開對話框中的文件過濾是如何實現,查了下資料,發現比較簡單的就
     能實現。
     下面是核心代碼:
     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的文

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章