2012-04-08 3 views
0

私はJTextAreaでテキストを表示するには、このコードを使用しています:JavaでJTextAreaにデータを追加するには?

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

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

java.lang.NullPointerException 
+1

なぜJava Mobileタグ??? – mKorbel

+1

@mbarday 'JTextArea#getText'は決して' null'を返しません。 – Jeffrey

+0

@Jeffrey 'null'を返しても、ここで有効です。 –

答えて

4

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

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人の友人から回答がありました。 私はそれを説明したい。私は初めてこの問題に会ったので。私はそれを解決しましたが、今日は上記のコードスニペットとして解決します。

0

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

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

Source

0

ジェフリーが指摘したように、あなたはそれ上の非静的メソッドを呼び出す前に、オブジェクトのインスタンスを作成する必要があります。それ以外の場合は、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); 
    } 
} 
 
関連する問題