Java文件选择JFileChooser使用例子


JFileChooser类的使用非常简单,主要是对一些属性的设置,以及文件筛选器的使用。

[java]

  1. import javax.swing.JFileChooser;  
  2.   
  3. public class FileChooser {  
  4.     public static void main(String[] args)  
  5.     {  
  6.         JFileChooser fc = new JFileChooser("D:");  
  7.         //是否可多选   
  8.         fc.setMultiSelectionEnabled(false);  
  9.         //选择模式,可选择文件和文件夹   
  10.         fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);  
  11. //      fc.setFileSelectionMode(JFileChooser.FILES_ONLY);   
  12. //      fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);   
  13.         //设置是否显示隐藏文件   
  14.         fc.setFileHidingEnabled(true);  
  15.         fc.setAcceptAllFileFilterUsed(false);  
  16.         //设置文件筛选器   
  17.         fc.setFileFilter(new MyFilter("java"));  
  18.         fc.setFileFilter(new MyFilter("zip"));  
  19.           
  20.         int returnValue = fc.showOpenDialog(null);  
  21.         if (returnValue == JFileChooser.APPROVE_OPTION)  
  22.         {  
  23.             //fc.getSelectedFile()   
  24.             //fc.getSelectedFiles()   
  25.         }  
  26.     }  
  27. }  

[java]

  1. import java.io.File;  
  2. import javax.swing.filechooser.FileFilter;  
  3.   
  4. public class MyFilter extends FileFilter  
  5. {  
  6.       
  7.     private String ext;  
  8.       
  9.     public MyFilter(String extString)  
  10.     {  
  11.         this.ext = extString;  
  12.     }  
  13.     public boolean accept(File f) {  
  14.         if (f.isDirectory()) {  
  15.             return true;  
  16.         }  
  17.   
  18.         String extension = getExtension(f);  
  19.         if (extension.toLowerCase().equals(this.ext.toLowerCase()))  
  20.         {  
  21.             return true;  
  22.         }  
  23.         return false;  
  24.     }  
  25.   
  26.   
  27.     public String getDescription() {  
  28.         return this.ext.toUpperCase();  
  29.     }  
  30.   
  31.     private String getExtension(File f) {  
  32.         String name = f.getName();  
  33.         int index = name.lastIndexOf('.');  
  34.   
  35.         if (index == -1)  
  36.         {  
  37.             return "";  
  38.         }  
  39.         else  
  40.         {  
  41.             return name.substring(index + 1).toLowerCase();  
  42.         }  
  43.     }  
  44. }  

相关内容