Java Swing學習:文件選擇框java
Java爲文件選擇框提供了JFileChooser類API。經過使用該類,能夠很方便的現實文件選擇對話框。見下例:app
//創建文件選擇框對象 JFileChooser fc=new JFileChooser(); //設定文件選擇框標題 fc.setDialogTitle("Open class File"); //顯示文件選擇框,在選擇後將結果儲存到returnVal變量中 int returnVal = fc.showOpenDialog(app.getFrameInstance()); //若是用戶選擇了文件,並點擊了"Opne/打開"按鈕,顯示用戶選擇的文件全名路徑, //若是用戶點擊"Close/關閉"按鈕,以及其它方式退出文件選擇框,則什麼也不作。 if (returnVal == JFileChooser.APPROVE_OPTION){ File file = fc.getSelectedFile(); System.out.println(file.getPath()); }學習
注意在文件選擇對話框中,能夠進行選擇目錄的操做,只須要用FileChooser對象的setFileSelectionMode()方法指定其選擇模式爲目錄選擇。見下面代碼spa
//上例中能夠在文件對話框顯示語句前加上下面代碼,使對話框成爲目錄選擇對話框 fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);對象
在文件選擇過程當中,咱們能夠爲文件選擇對話框設置過濾器,有了過濾器的對話框,會用下拉列表的方式將過濾的文件名特徵顯示在"文件類型"組合框中,並將不符合條件的文件名和目錄名過濾掉(不顯示)。ip
爲一個文件選擇對話框設置過濾器須要定義過濾器類,見下例:get
public class ClassFileFilter extends FileFilter{ public boolean accept(File f) { String filename = f.getName(); return filename.endsWith(".class"); } public String getDescription() { return "*.class"; } }it
該類定義了一個過濾Java類文件"*.class"的過濾器。 將它增長到文件選擇對話框中,能夠過濾出以.class爲尾綴的文件。見下面代碼:io
fc.addChoosableFileFilter(new ClassFileFilter());class
針對一個對話框,咱們能夠爲其加裝多個過濾器。這裏有對過濾器更加詮釋的代碼: public class ImageFilter extends FileFilter { //Accept all directories and all gif, jpg, tiff, or png files. public boolean accept(File f) { if (f.isDirectory()) { return true; } String extension = Utils.getExtension(f); if (extension != null) { if (extension.equals(Utils.tiff) || extension.equals(Utils.tif) || extension.equals(Utils.gif) || extension.equals(Utils.jpeg) || extension.equals(Utils.jpg) || extension.equals(Utils.png)) { return true; } else { return false; } } return false; } public String getDescription() { return "Just Images"; } } 該過濾器爲圖像文件過濾器。