Nullpointer异常错误 - 尝试从JTextArea获取文本

时间:2017-05-10 09:49:45

标签: java filewriter bufferedwriter

我正在尝试将JTextArea中的文本存储到变量中,然后将变量与FileWriter/BufferedWriter结合使用以将内容保存到文件中。 它适用于普通字符串,如:

String stored = "Example";

但是我总是在尝试使用以下内容时遇到nullpointer异常错误:

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()错误的方法?

1 个答案:

答案 0 :(得分:0)

首先,您应该阅读What is a NullPointerException, and how do I fix it?

然后,您应该查看堆栈跟踪,它会告诉您错误发生在哪一行。将它包含在您的帖子中会很有用。

现在,即使没有堆栈跟踪,我也可以假设NPE是由retrieve.txtarea.getText();引起的。当您在没有设置任何retrieve的情况下实例化txtarea时,我认为textarea为空,因此是NPE。