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

Java Swing:在方法之后将JTextArea设置为Null,java,swing,jtextarea,Java,Swing,Jtextarea,我正在创建我的第一个GUI,我遇到了一个似乎无法克服的问题。按下按钮执行方法后,我想将JTextArea设置为“”或null。在按下按钮的那一分钟,执行一个方法,程序正常运行,但文本区域不为空。我在这段代码中得到一个“java.lang.NullPointerException”: JButton JInputFile = new JButton("Input network file"); JInputFile.addActionListener(new ActionListe

我正在创建我的第一个GUI,我遇到了一个似乎无法克服的问题。按下按钮执行方法后,我想将JTextArea设置为“”或null。在按下按钮的那一分钟,执行一个方法,程序正常运行,但文本区域不为空。我在这段代码中得到一个“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清空,我如何修复它?

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

        • 我想到两件事

          您应该使用
          setText
          ,而不是使用
          append
          。Append的作用与它听起来的完全一样,它将文本追加到
          JTextArea
          的底层
          文档的末尾,其中as
          setText
          将用新值替换
          文档的内容


          和/或
          JTextAreaResult
          null

          我想到了两件事

          您应该使用
          setText
          ,而不是使用
          append
          。Append的作用与它听起来的完全一样,它将文本追加到
          JTextArea
          的底层
          文档的末尾,其中as
          setText
          将用新值替换
          文档的内容

          和/或
          JTextAreaResult
          null

          “我想将JTextArea设置为”“或null。”

          这些东西不是一回事<代码>“”
          是对空字符串对象的引用<另一方面,code>null
          是对nothing的引用。获取
          NullPointerException
          意味着程序试图遵循某个引用,但它是一个空引用

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

          “我想将JTextArea设置为“”或null。”

          这些东西不是一回事<代码>“”
          是对空字符串对象的引用<另一方面,code>null
          是对nothing的引用。获取
          NullPointerException
          意味着程序试图遵循某个引用,但它是一个空引用


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

          实际上,
          setText
          可以使用
          null
          ,一直使用它。实际上,
          setText
          可以使用
          null
          ,一直使用它。