2012-03-15 14 views
0

netbeansのデザイン面で追加した、現在選択されているタブ(Tab1 one)のテキストのみを保存したいのですが、新しいタブ機能とは別です。機能を保存するマイJTabbedPane:アクティブなタブでのみアクションを実行する方法

はタブここで1

以外の他のすべてのタブのために働くで私の試みとなっタブ1が選択されている場合、タブ1からテキストを収集するために保存します。

public void Save_As() 
    { 

    fileChooserTest.setApproveButtonText("Save"); 
    int actionDialog = fileChooserTest.showOpenDialog(this); 

    File fileName = new File(fileChooserTest.getSelectedFile() + ".txt"); 
    try{ 
    if(fileName == null) 
     return; 

    BufferedWriter bw1 = new BufferedWriter(new FileWriter(fileChooserTest.getSelectedFile() + ".txt")); 

     String text = ((JTextArea)TabPane.getSelectedComponent()).getText(); 
     if((TabPane.getTitleAt(TabPane.getSelectedIndex())).equals("Doc1.txt")) 
     { 
      bw1.write(this.TextArea.getText()); 
     } 
     else 
     { 
      bw1.write(text); 
      bw1.close(); 
     } 

    } 
    catch (IOException ex) { 

    } 
    } 
+0

例外がスローされますか? MVCパターン? – sockeqwe

+0

はい、エラーは発生しません。保存ファイルを作成するとTextAreaからテキストを読み取れません – donthedestroyer

答えて

0

あなたがすることを忘れBufferedWriterを閉じます。 1行追加するだけで問題を解決できます。

もっと良くするには、try ... catch ... finallyを使用して、finallyセクションにBufferedWriter.close()を配置する必要があります。

 if((TabPane.getTitleAt(TabPane.getSelectedIndex())).equals("Doc1.txt")) 
    { 
     bw1.write(this.TextArea.getText()); 
     bw1.close();// you need to close it here. 
    } 
    else 
    { 
     bw1.write(text); 
     bw1.close(); 
    } 
関連する問題