自學整理一:java文件對話框的使用(包括文件多選,文件、文件夾同時可選操作)


老早寫的,現在轉移陣地

 

在java中有兩種方式調用文件對話框

(1)一種是AWT中的FileDialog類,通過FileDialog類創建一個對象,該對象即是所需要的對話框,

例如,FileDialog dialog=new FileDialog(new Frame(),"選擇存放位置",FileDialog.LOAD);


 

這一行代碼使用了FileDialog類的其中一個構造函數

FileDialog(Dialog parent,String title, int mode)       ----------  創建一個具有指定標題的文件對話框窗口,用於加載或保存文件。

其中最難懂的就是int mode,這是文件對話框的模式選擇,有兩個字段,如下所示:

字段摘要  
static int LOAD
          此常量值指示文件對話框窗口的作用是查找要讀取的文件。
 
static int SAVE
          此常量值指示文件對話框窗口的作用是查找要寫入的文件。
 


 

最后再通過調用dialog.setVisible(true)方法來使對話框顯示到用戶面前,由於它是一個模式對話框,當應用程序調用其setVisible(true)方法來顯示對話框時,它將阻塞其余應用程序,直到用戶選擇一個文件。

這是簡單的一個對話框操作,但如果說要需要更加多的操作(例如多文件選擇,可以同時選擇文件和文件夾)的話,這就要使用到swing中的JFileChooser類了,

(2)下面來講通過swing當中的JFileChooser類來創建對話框

JFileChooser的功能與AWT中的FileDialog基本相似,也是用於生成“打開文件”,“保存文件”的對話框,與FileDoalog不同的是,JFileChooser無須依賴於本地平台的GUI,它由100%純java實現,在所有平台上具有完全相同的行為,並可以在所有平台上具有相同的外觀風格。

JFileChooser並不是JDialog的子類(API文檔中截圖如上所示),所以不能使用setVisible(true)來顯示該文件對話框,而是調用

showXxxDialog()方法來顯示文件對話框

構造方法:

JFileChooser(File currentDirectory,FileSystemView fsv) 
          使用給定的當前目錄和 FileSystemView 構造一個 JFileChooser

currentDirectory:指定所創建文件對話框的當前路徑,該參數既可以是一個string類型的路徑,也可以是一個File對象所代表的的路徑;

FileSystemView :用於指定基本該文件系統外觀來創建文件對話框,如果沒有指定該參數,默認以當前文件系統外觀創建文件對話框。

使用JFileChooser來建立一個文件對話框並允許用戶選擇文件的步驟如下:

(1)采用構造器創建一個JFileChooser對象,該JFileChooser對象無須指定parent組件,這意味着可以在多個窗口中共用該JFileChooser對象,創建JFileChooser對象時可以初始化路徑

例如:

   //以當前路徑創建文件選擇器

   JFileChooser addChooser=new JFileChooser(".");

(2)調用JFileChooser的系列可選方法對JFileChooser執行初始化操作,下面我講解一些最常用而且使用的方法:

      setMultiSelectionEnabled(true):默認情況下,該文件選擇器只能選擇一個文件,通過該方法可以設置允許選擇多個文件(設置參數為true即可)

      setFileSelectionMode(int mode):默認情況下,該文件選擇器只能選擇一個文件,通過調用該方法可以設置允許選擇文件,選擇路徑,文件與路徑。
               /  * 設置 JFileChooser,以允許用戶只選擇文件、只選擇目錄,或者可選擇文件和目錄。默認值是 JFilesChooser.FILES_ONLY。

                     參數:
                     mode - 要顯示的文件類型: 
                  JFileChooser.FILES_ONLY 
                  JFileChooser.DIRECTORIES_ONLY 
                  JFileChooser.FILES_AND_DIRECTORIES 

                 */

例如
                addChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);


如上圖所示,該文件對話框可同時實現文件與文件夾選擇和多項同時選中,代碼如下:

JFileChooser addChooser=new JFileChooser();

                addChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
                //該方法設置為true允許選擇多個文件
                addChooser.setMultiSelectionEnabled(true);
                int returnval=addChooser.showOpenDialog(jf);  
                if(returnval==JFileChooser.APPROVE_OPTION)
                {
                    File[] files=addChooser.getSelectedFiles();
                    String str="";
                    for (File file : files) {
                        af.add(file);
                        if(file.isDirectory())
                            str=file.getPath();
                        else{
                          str=file.getPath()+file.getName();
                        }
                        jta.append(str+"\n");
                        
                    }

                }
                
            }

(3)調用showXxxDialog()方法來打開文件對話框,通常有如下三種方法:

int  showDialog(Component parent,String approveButtonText):彈出文件對話框,該對話框的標題、”同意“按鈕的文本(默認是”保存“或”取消“按鈕)由approveButtonText來指定,這就可以自己定義那個按鈕的文字在需要的時候

例如:

                JFileChooser chooser=new JFileChooser();
                chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

                int returnval=chooser.showDialog(jf, "選擇文件夾");
                if(returnval==JFileChooser.APPROVE_OPTION)
                {
                    String str=chooser.getSelectedFile().getPath();
                    targetfoleder.setText(str);
                }

int showOpenDialog(Component parent):彈出文件對話框,該對話框具有默認標題,”同意“按鈕的文本是”打開“

int showSaveDialog(Component parent):彈出文件對話框,該對話框具有默認標題,”同意“按鈕的文本是”保存“

 

總結了一些,希望對有所困惑的朋友有點幫助~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM