JFileChooser檔案過濾的實現

來源:互聯網
上載者:User

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

 

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

新網站上線 歡迎大家 網站交易中心 在這裡你可以購買或者出售你的網站。
網站資訊發布中心 在這裡有各種交易資訊的發布。同時提供
一些軟體的免費使用(附有源碼)。
網站部落格系統 這裡你可以註冊自己的部落格。一個賬戶無限量部落格
連絡方式: support@websiteempire.cn
QQ:563828566
MSN:zhuhailin123@hotmail.com 
                                
     

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.