私はJTextArea
でテキストを表示するには、このコードを使用しています:JavaでJTextAreaにデータを追加するには?
jTextArea1.setText(jTextArea1.getText() + text + "\r\n");
jTextArea1.repaint();
しかし、それは例外を示しています
java.lang.NullPointerException
私はJTextArea
でテキストを表示するには、このコードを使用しています:JavaでJTextAreaにデータを追加するには?
jTextArea1.setText(jTextArea1.getText() + text + "\r\n");
jTextArea1.repaint();
しかし、それは例外を示しています
java.lang.NullPointerException
あなたのJTextArea
をインスタンス化することはありません。また、JTextArea#append
をチェックアウトすることもできます。
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);
ジェフリーが指摘したように、あなたはそれ上の非静的メソッドを呼び出す前に、オブジェクトのインスタンスを作成する必要があります。それ以外の場合は、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);
}
}
なぜJava Mobileタグ??? – mKorbel
@mbarday 'JTextArea#getText'は決して' null'を返しません。 – Jeffrey
@Jeffrey 'null'を返しても、ここで有効です。 –