2013-09-29 113 views
0

我正在用java寫一個程序,就像記事本一樣。所以,我有保存下來,它的工作原理,這裏是例子的代碼用JFileChooser保存字符串

BufferedWriter writer = null; 
        try { 
         writer = new BufferedWriter(new FileWriter(link.getText())); 
         writer.write(display.getText()); 
        } catch (Exception e1) { 
         e1.printStackTrace(); 
        } finally { 
         try { 
          if (null != writer) { 
           writer.close(); 
          } 
         } catch (Exception e1) { 
          e1.printStackTrace(); 
         } 
        } 

不管怎麼說,這樣做是什麼,你不能看到它的代碼,但它使有一個JTextField和一個JFrame JButton,你所做的就是把鏈接放在JTextField中(例如:C:\ Users \ Noah \ Desktop \ text.txt),當你按下保存時它會保存。但我想用JFileChooser來做到這一點。有人能幫我嗎?

編輯:

解決方案:

JFileChooser fc = new JFileChooser("C:\\Users"); 
fc.showSaveDialog(frame); // frame is the JFrame (window) 
BufferedWriter writer = null; 
       try { 
        writer = new BufferedWriter(new FileWriter(fc.getSelectedFile().getPath())); 
        writer.write(display.getText()); 
       } catch (Exception e1) { 
        e1.printStackTrace(); 
       } finally { 
        try { 
         if (null != writer) { 
          writer.close(); 
         } 
        } catch (Exception e1) { 
         e1.printStackTrace(); 
        } 
       } 

我想通了這一點的方式後,我張貼了這個

回答

1

你在谷歌有很多的例子,反正這裏是一些代碼片段,我救xml文件:

public void SaveMe(){ 

    //Configure fileChooser 
    JFileChooser fc = new JFileChooser(lastOpenDir); // after 1st save store path to "lastOpenDir" 

    fc.setFileSelectionMode(JFileChooser.FILES_ONLY); 

    fc.setDialogTitle("Save only XML"); 


    fc.removeChoosableFileFilter(fc.getFileFilter()); //remove the default file filter 

    FileFilter filter = new FileNameExtensionFilter("XML file", "xml"); 

    fc.addChoosableFileFilter(filter); //add XML file filter 

    //show dialog 
    int returnVal = fc.showSaveDialog(appFrame); 

    if(returnVal == JFileChooser.APPROVE_OPTION){ 

     File selectedDir = fc.getSelectedFile(); 

     lastOpenDir=fc.getSelectedFile().getParent(); 

     lastOpenFile = fc.getSelectedFile().getName(); 

     if(selectedDir.isFile()){ 

      String errorString = selectedDir.getPath()+" already exists.\nDo you want to replace it?"; 

      Object[] options = {"Yes", "No"}; 

      int n = JOptionPane. 
        showOptionDialog(
          null, 
          errorString, 
          "Override", 
          JOptionPane.YES_NO_OPTION, 
          JOptionPane.QUESTION_MESSAGE, 
          null, 
          options, 
          options[0] 
          ); 

      if (n == JOptionPane.YES_OPTION){ 

       if(fc.getFileFilter().getDescription().equals("XML file")){ 

        // save selectedDir.getPath() 


       } 
      }