Java Swing:在方法之后将JTextArea设置为Null

时间:2014-01-28 22:36:37

标签: java swing jtextarea

我正在创建我的第一个GUI,但我遇到了一个我似乎无法克服的问题。通过按下按钮执行方法后,我想将JTextArea设置为“”或null。在按下按钮的那一刻,方法执行并且程序正常运行但TextArea不会为空。我在这段代码中得到了“java.lang.NullPointerException”:

    JButton JInputFile = new JButton("Input network file");
    JInputFile.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            final JFileChooser fc = new JFileChooser();
            int returnVal = fc.showOpenDialog(null);
            if (returnVal == JFileChooser.APPROVE_OPTION) {
                File file = fc.getSelectedFile();
                String fileName = file.getName();
                network = new Network(fileName);
                JTextAreaResult.append(null);  //exception points to this line
            }
        }
    });
    JInputFile.setFont(new Font("Calibri", Font.PLAIN, 11));
    JInputFile.setBounds(20, 56, 294, 20);
    contentPane.add(JInputFile);

我可能没有提供足够的信息,所以请告诉我。什么可能阻止我的JTextArea清空,我该如何解决?

3 个答案:

答案 0 :(得分:4)

  • 首先,它不是.append(null);而是.setText("");
  • 另一方面,您的JTextAreaResult变量是否在您尝试使用它的范围内为null?
  • 第三,您的变量名称应符合Java命名标准,并应以小写字母开头。这有助于其他人(我们!)更好地阅读和理解您的代码。
  • 此外,您似乎使用空布局并在组件上调用setBounds(...)。虽然这似乎是新手创建复杂GUI的更好方法,但这是一个谬论,你创建Swing GUI的次数越多,你学会尊重和使用布局管理器就越多,并且看到这些生物在创造灵活,美丽和创造方面有很大帮助。需要,复杂的GUI。

答案 1 :(得分:2)

有两件事情会浮现在脑海中......

您应该使用append,而不是使用setText。 Append完全听起来像它,它将文本附加到Document的基础JTextArea的末尾,其中setText将替换Document的内容新的价值。

和/或JTextAreaResultnull

答案 2 :(得分:1)

"I want to set a JTextArea to "" or null."

这些事情不是一回事。 ""是对空String对象的引用。另一方面,null是对任何事物的引用。获得NullPointerException的意思是,您的程序试图遵循一些引用,但它是一个空引用。

如果要清空文本字段,请使用""将文本设置为空字符串。不要将任何内容设置为null