我正在使用此代码在JTextArea
中显示文本:
jTextArea1.setText(jTextArea1.getText() + text + "rn");
jTextArea1.repaint();
但它显示了一个例外:
java.lang.NullPointerException
您从未实例化过您的JTextArea
。另外,您可能想查看JTextArea#append
。
jTextArea1.setText(jTextArea1.getText() + text + "rn");
StringBuilder sb = new StringBuilder();
if(jTextArea1.getText().trim().length() > 0){
sb.append(jTextArea1.getText().trim());
}
sb.append(text).append("rn");
jTextArea1.setText(sb.toString());
以上两位朋友给了你答案。我想解释一下。因为第一次我也遇到了这个问题。我解决了这个问题,但今天解决了上面的代码片段。
正如 Jeffrey 指出的那样,在对其调用非静态方法之前,您必须创建一个对象实例。否则,您将获得NullPointerException
.另请注意,通过调用其JTextArea.append(String)
方法,可以轻松地将文本追加到JTextArea
。有关更多详细信息,请参阅以下示例代码。
package test;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public class Main {
public static void main(String[] args) {
Main m = new Main();
m.start();
}
private void start() {
JTextArea ta = new JTextArea();
ta.append("1n");
ta.append("2n");
ta.append("3n");
JFrame f = new JFrame();
f.setSize(320, 200);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().add(ta);
f.setVisible(true);
}
}
下面的代码将文本添加到文本区域。请注意,文本系统在内部使用""字符来表示换行符;有关详细信息,请参阅 DefaultEditorKit 的 API 文档。
private final static String newline = "n";
...
textArea.append(text + newline);
源