1

私は小さな会話エージェントを構築しています。テキストは次のようになります。

ここに画像の説明を入力

システムのテキストを常に赤く設定したいと思います。テキストはすべて JTextPane に配置されます。

どうすればこれを達成できますか? 私は次のことを試しました:

agentTextPane.setForeground(Color.red);システムのテキストが追加された後、黒に戻りますが、JTextPane.

システムのテキストは次のように追加されます。

//'output' is a stringBuilder
output.append("\nSystem: ").append(tempOutput).append("\n");
agentTextPane.setText(output.toString());
4

2 に答える 2

2

ここに示すように、目的のスタイルを表す属性セットを定義できます。例えば、

StyledDocument doc = (StyledDocument) jtp.getDocument();
SimpleAttributeSet system = new SimpleAttributeSet();
StyleConstants.setFontFamily(system, "Serif");
StyleConstants.setForeground(system, Color.red);
doc.insertString(doc.getLength(), "...", system);

ここに示すように、スタイルはプログレッシブにすることができます。

画像

その他の例については、テキスト コンポーネントの機能を参照してください。

于 2013-04-14T10:00:31.850 に答える
2

HTML タグを使用して文字列を色でフォーマットすることができます。次のリファレンスが役立つ場合があります。JTextPane をコンテンツ タイプ HTML に設定し、文字列ビルダーを使用する

 output.append("<font color=\"red\">");
 output.append("\nSystem: ").append(tempOutput).append("\n");
 output.append("</font>");
于 2013-04-14T10:02:13.797 に答える