2017-05-10 64 views
0

我試圖將JTextArea中的文本存儲到一個變量中,該變量隨後與FileWriter/BufferedWriter一起用於將內容保存到文件中。 它與像一個正常的字符串:Nullpointer異常錯誤 - 嘗試從JTextArea獲取文本

String stored = "Example"; 

但我總是得到一個空指針異常錯誤嘗試使用以下命令:

menuItem.addActionListener(new ActionListener(){ 
    public void actionPerformed(ActionEvent e){ 
    HeadBar retrieve = new HeadBar(); 
    BufferedWriter bw = null; 

    try { 
     String stored = retrieve.txtarea.getText(); 
     FileWriter fw = new FileWriter("H:/UserInput.txt"); 
     bw = new BufferedWriter(fw); 
     bw.write(stored); 
     bw.flush(); 
     System.out.println("Text saved successfully."); 

    } catch (IOException ex){ 
     System.out.println("Error:" + ex.getMessage()); 
    } 
    } 
}); 

Headbar類中的方法的一部分:

txtarea = new JTextArea(); 
c.fill = GridBagConstraints.HORIZONTAL; 
c.ipady = 800; 
c.weighty = 5.0; 
c.anchor = GridBagConstraints.CENTER; 
c.gridx = 0; 
c.gridwidth = 20; 
c.gridy = 20; 
panel.add(txtarea, c); 

我做錯了什麼或者是getText()錯誤的方法?

+0

請問您可以發佈您的HeaderBar類的代碼。另外,哪條線路導致NPE? – jr593

+0

可能的重複[什麼是NullPointerException,以及如何解決它?](http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it ) –

回答

0

首先,您應該閱讀What is a NullPointerException, and how do I fix it?

然後,你應該看看堆棧跟蹤,它會告訴你哪一行發生錯誤。將它包含在你的文章中會很有用。

現在,即使沒有堆棧跟蹤,我也可以假設NPE是由retrieve.txtarea.getText();造成的。正如你instanciated retrieve沒有設置任何txtarea,我認爲textarea爲空,因此NPE。