我正在创建我的第一个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清空,我该如何解决?
答案 0 :(得分:4)
.append(null);
而是.setText("");
。 setBounds(...)
。虽然这似乎是新手创建复杂GUI的更好方法,但这是一个谬论,你创建Swing GUI的次数越多,你学会尊重和使用布局管理器就越多,并且看到这些生物在创造灵活,美丽和创造方面有很大帮助。需要,复杂的GUI。答案 1 :(得分:2)
有两件事情会浮现在脑海中......
您应该使用append
,而不是使用setText
。 Append完全听起来像它,它将文本附加到Document
的基础JTextArea
的末尾,其中setText
将替换Document
的内容新的价值。
和/或JTextAreaResult
是null
答案 2 :(得分:1)
"I want to set a JTextArea to "" or null."
这些事情不是一回事。 ""
是对空String对象的引用。另一方面,null
是对任何事物的引用。获得NullPointerException
的意思是,您的程序试图遵循一些引用,但它是一个空引用。
如果要清空文本字段,请使用""
将文本设置为空字符串。不要将任何内容设置为null
。