0

我正在使用此代码在 a 中显示文本JTextArea

jTextArea1.setText(jTextArea1.getText() + text + "\r\n");
jTextArea1.repaint();

但它显示了一个例外:

java.lang.NullPointerException
4

4 回答 4

4

You never instantiated your JTextArea. Also, you might want to check out JTextArea#append.

于 2012-04-08T18:34:18.903 回答
0

以下代码将文本添加到文本区域。请注意,文本系统在内部使用 '\n' 字符来表示换行符;有关详细信息,请参阅 DefaultEditorKit 的 API 文档。

private final static String newline = "\n";
...
textArea.append(text + newline);

资源

于 2012-04-08T18:54:04.900 回答
0

正如 Jeffrey 指出的那样,您必须先创建一个对象实例,然后再对其调用非静态方法。否则,您将获得一个NullPointerException. JTextArea另请注意,可以通过调用其JTextArea.append(String)方法轻松地将文本附加到 a 。有关更多详细信息,请参见以下示例代码。


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("1\n");
    ta.append("2\n");
    ta.append("3\n");
    JFrame f = new JFrame();
    f.setSize(320, 200);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.getContentPane().add(ta);
    f.setVisible(true);
  }
}

于 2012-04-08T18:55:03.573 回答
0
jTextArea1.setText(jTextArea1.getText() + text + "\r\n");

StringBuilder sb = new StringBuilder();
if(jTextArea1.getText().trim().length() > 0){
    sb.append(jTextArea1.getText().trim());
}
sb.append(text).append("\r\n");

jTextArea1.setText(sb.toString());

以上两位朋友给了你答案。我想解释一下。因为第一次我也遇到了这个问题。我解决了这个问题,但今天解决了上面的代码片段。

于 2012-04-08T18:43:09.463 回答