2011-01-11 8 views
7

私は色を変えることができる1つの方法はsetForground()です。しかし、複数のコード行がある場合、すべてが緑色または黒色になります。この問題を解決する別の方法や方法がありますか?ありがとう!Java:テキスト領域の特定の行または行の文字列の色を変更するにはどうすればよいですか?

int key = evt.getKeyCode(); 
    if (key == KeyEvent.VK_ENTER) 
    { 
     String tb1EnterdValue = tb1.getText().toString(); 
     if((tb1EnterdValue.equals("yes"))) 
     { 
      TextArea1.setForeground(Color.green); 
    else 
     { 
       TextArea1.setForeground(Color.lightGray); 
     } 
     this.TextArea1.append(">"+tb1EnterdValue+newline); 
     this.tb1.setText(""); 

答えて

3

テキストの色を変更するために、「属性」(HTMLではなく)のJTextPaneを使用します。 Text Component FeaturesのSwingチュートリアルのセクションには、始めるための実例があります。

私は前にJTextPanesを試みたが、彼らは私がAPPENDを使用させません()メソッド

のappend()メソッドを使用するとの最後にテキストを追加することを可能にするだけで便利なメソッドですドキュメント。あなたはJTextPaneのために独自のappend()メソッドを実装することもできます。 JTextAreaのソースコードを見て、append()メソッドからコードをコピーしてください。

+0

ありがとう、しかし、私はJTextAreaからどのようにソースコードを取得するのですか? – Kevin

+0

ソースコードはJDKに付属しています。これはsrc.zipというファイル内にあります。 – camickr

+0

それを入手しましたが、どこにこのコードをコピーしますか? – Kevin

0

これはSwingであり、JTextAreasを使用していますか?もしそうなら、あなたの質問で具体的にしてから、JTextAreaを使用しないでください。なぜなら、1つのテキストコンポーネント内に複数のフォーマットを使用するのに理想的なテキストコンポーネントではないからです。代わりに、JTextPaneまたはJEditorPaneの使用を検討してください。チュートリアルでは、これらの使用方法と使用時期を示します。

+0

はいそれはスイングとJTextAreaです。以前はJTextPanesを試してみましたが、append()メソッドを使用させず、新しい行にそれぞれの 'コマンド'を作成する必要があります。 – Kevin

+0

追加がないと、コンポーネントのドキュメントにテキストを追加できるように、他のテキストコンポーネントを使用できないようにしてはいけません。 –

+0

どうすればいいですか?テキストへの各エントリの後にカーソルを置いて新しい行を作る必要があるからです。同様に、追加するのに似たメソッドがありますか? – Kevin

関連する問題