2017-05-10 40 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。