java - 如何从某一点向前设置文本颜色

标签 java swing netbeans colors jtextpane

我正在构建一个小型对话代理,其中的文本如下所示:

enter image description here

我想将系统的文本设置为始终为红色。文本全部放在 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 .

image

参见 Text Component Features更多示例。

关于java - 如何从某一点向前设置文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15997727/

相关文章:

java - 使用 oracle 准备好的语句执行批处理

java - 如何使用 KeyListener 根据按下的键显示不同的字符串?

java - 初级 Java 开发人员 Netbeans/Eclipse IDE 问题

java - Java 问题和命令行错误

Java Swing : How to access variables in a 2nd frame from the first frame?

java - HTTP 错误 : 503 when i run app-engine locally

java - 从 Multimaps.synchronizedSortedSetMultimap 转换多重映射

java - Spring Boot 。如何测试http协议(protocol)版本?

Java KeyBindings 对 JPanel 没有反应

java - 如何更改子卡中的cardLayout卡?