Java - 在 JTextArea 中将颜色设置为文本

Posted

技术标签:

【中文标题】Java - 在 JTextArea 中将颜色设置为文本【英文标题】:Java - Swing setting colour to text in JTextArea 【发布时间】:2012-02-24 06:02:21 【问题描述】:

我有一个 JTextArea,它的文本设置为一串信息。在这个信息字符串中,我有一个变量,我想将它涂成红色,为此我编辑字符串如下:

"Result: <html><font color=red>" + negativeValue + "</font></html>"

我希望这会给出 Result: ## 其中数字是红色的。但是它只是将以下内容放入文本区域:

Result: <html><font color=red>##</font></html>

我不太确定如何让这个工作,所以有人可以就如何做到这一点提供建议吗?

【问题讨论】:

【参考方案1】:

JTextArea 不是为样式文本设计的组件。如果文本可以是一种颜色,请致电setForeground(Color)

否则,请使用带样式的文本组件,例如 JEditorPaneJTextPane。欲了解更多信息。使用它们,请参阅How to Use Editor Panes and Text Panes。

也有人指出,整个String 必须以&lt;html&gt; 开头。

【讨论】:

【参考方案2】:

您不能在 JTextArea 中使用 HTML,但可以将其与 JEditorPane 一起使用

【讨论】:

【参考方案3】:

JTextArea 不支持带样式的文本区域,为了呈现 HTML,您需要 JEditorPane 或 JTextPane 的实例。请参阅tutorial on Using Text Components 。

示例代码here

【讨论】:

【参考方案4】:

如果没记错的话,JTextArea 仅用于纯文本显示。对于 HTML,您必须使用 JEditorPane 或其子类之一。

【讨论】:

【参考方案5】:

Java 仅在 html 代码以 &lt;html&gt; 开头时才呈现它。你应该尝试一下

"<html>Result: <font color=red>" + negativeValue + "</font></html>"

【讨论】:

..并且仅当它被放入样式文本组件中时。 ;)

以上是关于Java - 在 JTextArea 中将颜色设置为文本的主要内容,如果未能解决你的问题,请参考以下文章

java 怎么在JtextArea里设置滚动条

java中TextArea/JTextArea的对齐方式怎么设置的?

如何更改 JTextArea 中的文本颜色?

如何在 Android Java 中将 Color.RED 代码转换为颜色的整数值? [复制]

文本区域 (JTextArea) 的自动文本滚动,插入符号位置设置为最后一行的开头

更改 JTextArea 中的文本选择类型