2012-03-15 3 views
0

netbeans의 디자인 측면에서 추가 한 새 탭 기능과 별도로 현재 선택한 탭 (Tab1 하나)에 텍스트 만 저장하고 싶습니다. 저장 기능 내JTabbedPane : 활성 탭에서만 작업 수행 방법

탭 여기에 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를 닫습니다. 한 줄만 추가하면 문제를 해결할 수 있습니다.

더 나은 결과를 얻으려면 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(); 
    }