2013-05-30 30 views
-1

我做了一個桌面應用程序,它有一個JFileChooser(ShowSaveDialog)函數。 當我試圖保存一個示例文本文件時,程序沒有得到擴展文件我選擇了..我試圖使用的if else或switch語句,我不能算出它,我將使用什麼命令,如果PDF格式,文字或TXT擴展名被選爲文件擴展名來獲取字符串/ int值的條件。 ..JFileChooser(showSaveDialog)不能得到所選擇的擴展文件的值

public class Save { 
    static boolean flag = false; 
    public static void main(String[] args) throws IOException, SQLException { 
     JFileChooser saveFile = new JFileChooser(); 
     saveFile.setDialogTitle("Save as"); 

     FileNameExtensionFilter File_ext_txt = 
      new FileNameExtensionFilter("Text Documents(*.txt)", "txt"); 
     FileNameExtensionFilter File_ext_pdf = 
      new FileNameExtensionFilter("PDF", "pdf"); 
     FileNameExtensionFilter File_ext_doc = 
      new FileNameExtensionFilter("Word 97-2003 Document", "doc"); 
     saveFile.addChoosableFileFilter(File_ext_pdf); 
     saveFile.addChoosableFileFilter(File_ext_doc); 
     saveFile.addChoosableFileFilter(File_ext_txt); 

     FileFilter extension = saveFile.getFileFilter(); 
     int userSelection = saveFile.showSaveDialog(null); 
     File File_Path = saveFile.getSelectedFile(); 
     String fullPath = File_Path.getAbsolutePath(); 
     String Ext = null; 
     if (userSelection == JFileChooser.APPROVE_OPTION){ 
      if(extension == File_ext_txt){ 
       Ext = "txt"; 
      } 

      File save = new File(fullPath+"."+Ext); 
      System.out.println(extension); 
      flag = save.createNewFile(); 
     } 
    } 
} 
+0

那你嘗試沒有工作? – Reimeus

+0

代碼請,年輕的程序員。 – christopher

+0

我只需要獲得 「TXT」 字符串 的FileNameExtensionFilter File_ext_txt =新的FileNameExtensionFilter( 「文本文檔(* TXT)」, 「TXT」); – John

回答

8

我以前遇到過這個問題。這是從我的節目,你可以用它代替JFileChooser.getSelectedFile,得到延伸過的一個效用函數。

/** 
* Returns the selected file from a JFileChooser, including the extension from 
* the file filter. 
*/ 
public static File getSelectedFileWithExtension(JFileChooser c) { 
    File file = c.getSelectedFile(); 
    if (c.getFileFilter() instanceof FileNameExtensionFilter) { 
     String[] exts = ((FileNameExtensionFilter)c.getFileFilter()).getExtensions(); 
     String nameLower = file.getName().toLowerCase(); 
     for (String ext : exts) { // check if it already has a valid extension 
      if (nameLower.endsWith('.' + ext.toLowerCase())) { 
       return file; // if yes, return as-is 
      } 
     } 
     // if not, append the first extension from the selected filter 
     file = new File(file.toString() + '.' + exts[0]); 
    } 
    return file; 
} 
+1

謝謝!你爲我節省了很多時間! :)我一直在尋找方法來使用..但你的作品像一個魅力 – John