2011-01-16 14 views
0

プログラムでは、ユーザーがテキストフィールドのコマンドを入力し、入力したものがテキスト領域に表示されます。もしそれがyesのようなキーワードなら、それは緑色に変わりますが、テキストエリアには1行のテキストだけを緑色に設定することはできませんので、テキストペインを使用する必要があります。Java:JTextAreaのappend()と同じことを行うメソッドがJTextPaneにありますか?

テキストペインを使用しても、私はもうappendメソッドを使用できないという問題があります。

private final static String newline = "\n"; 
private void enterPressed(java.awt.event.KeyEvent evt) {          
    int key = evt.getKeyCode(); 
    if (key == KeyEvent.VK_ENTER) 
    { 
     String textfieldEnterdValue = textfield1.getText().toString(); 
     this.TextArea1.append("> "+tb1EnterdValue+newline); 
     this.tb1.setText(""); 
     if((tb1EnterdValue.equals("yes"))) 
     { 
      TextArea1.setForeground(Color.green); 
     } 
    } 

答えて

0

私は、基礎となるドキュメントで直接行う必要があると思います。このような

何か:

 
String value = textfield1.getText(); // no need for toString() here! 
textPane.getDocument().insertString(textPane.getCaretPosition(), value, null); 
1

JTextPaneがモデルとしてDocumentを使用しています。これは、複数の色とフォントの使用をサポートするために必要です。
したがって、JTextPaneに追加するには、ドキュメントを変更する必要があります。
以下の方法が利用可能である:例えば

insertString(int pos, String value, AttributeSet att)
remove(int pos, int length)

、この文書の末尾にvalueを追加します。

Document d = textPane.getDocument(); 
d.insertString(d.getLength(), value, null); 

また、あなたが新しく追加された行が画面に表示されていることを確認するためにmodelToView(int)の結果とscrollRectToVisible(Rectangle)を呼び出す必要があります。

関連する問題