我正在构建一个小型对话代理,其中的文本如下所示:
我想将系统的文本设置为始终为红色。文本全部放在 JTextPane 中。
我怎样才能做到这一点?我已尝试执行以下操作:
agentTextPane.setForeground(Color.red);
添加系统文本后,然后切换回黑色,但是这改变了 JTextPane
中的所有文本。
这是添加系统文本的方式:
//'output' is a stringBuilder
output.append("\nSystem: ").append(tempOutput).append("\n");
agentTextPane.setText(output.toString());
最佳答案
如图here ,您可以定义代表所需样式的属性集。例如,
StyledDocument doc = (StyledDocument) jtp.getDocument();
SimpleAttributeSet system = new SimpleAttributeSet();
StyleConstants.setFontFamily(system, "Serif");
StyleConstants.setForeground(system, Color.red);
doc.insertString(doc.getLength(), "...", system);
样式可以渐进,如图here .
参见 Text Component Features更多示例。
关于java - 如何从某一点向前设置文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15997727/