2012-03-15 55 views
0

我只想保存当前选定选项卡上的文本(选项卡1),这是我在netbeans的设计方面添加的,并且与我的新选项卡功能分开。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 2012-03-15 13:12:52

+0

是没有错误,只是没有从TextArea中读取文本时,我创建一个保存文件 – donthedestroyer 2012-03-15 14:45:07

回答

0

你忘了关闭BufferedWriter。只需添加一行即可关闭它将解决您的问题。

为了使它好得多,你应该使用try ... catch ... finally,并把BufferedWriter.close()放在finally节中。

 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(); 
    } 
相关问题