0

私はこのコードを使用してテキストをJTextArea:で表示しています

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

しかし、それは例外を示しています:

java.lang.NullPointerException
4

4 に答える 4

4

をインスタンス化したことがありませんJTextArea。また、チェックアウトすることもできますJTextArea#append

于 2012-04-08T18:34:18.903 に答える
0

Jeffrey が指摘したように、非静的メソッドを呼び出す前に、オブジェクト インスタンスを作成する必要があります。それ以外の場合は、NullPointerException. また、テキストを に追加するには、そのメソッドJTextAreaを呼び出すことで簡単に実行できることに注意してください。JTextArea.append(String)詳細については、次のコード例を参照してください。


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());

上記の2人の友人があなたに答えました。説明したい。初めて私もその問題に遭遇したからです。私はそれを解決しましたが、今日は上記のコードスニペットのように解決します。

于 2012-04-08T18:43:09.463 に答える
0

次のコードは、テキスト領域にテキストを追加します。テキスト システムは改行を表すために内部で '\n' 文字を使用することに注意してください。詳細については、DefaultEditorKit の API ドキュメントを参照してください。

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

ソース

于 2012-04-08T18:54:04.900 に答える