JTabbedPane:如何仅在活动选项卡上执行操作

时间:2012-03-15 12:28:02

标签: swing user-interface netbeans jtabbedpane

我想只保存当前所选标签(Tab1 one)上的文字,我在netbeans的设计方面添加了该标签,并与我的新标签功能分开。

我的保存功能适用于标签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) {

    }
  }

1 个答案:

答案 0 :(得分: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();   
     }