JTabbedPane: как выполнить действие только на активной вкладке - PullRequest
0 голосов
/ 15 марта 2012

Я хотел бы сохранить только текст на выбранной в данный момент вкладке (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 голосов
/ 16 марта 2012

Вы забыли закрыть 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();   
     }
...