私はこのコードを使用してテキストをJTextArea
:で表示しています
jTextArea1.setText(jTextArea1.getText() + text + "\r\n");
jTextArea1.repaint();
しかし、それは例外を示しています:
java.lang.NullPointerException
をインスタンス化したことがありませんJTextArea
。また、チェックアウトすることもできますJTextArea#append
。
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);
}
}
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人の友人があなたに答えました。説明したい。初めて私もその問題に遭遇したからです。私はそれを解決しましたが、今日は上記のコードスニペットのように解決します。
次のコードは、テキスト領域にテキストを追加します。テキスト システムは改行を表すために内部で '\n' 文字を使用することに注意してください。詳細については、DefaultEditorKit の API ドキュメントを参照してください。
private final static String newline = "\n";
...
textArea.append(text + newline);