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)
。
否则,请使用带样式的文本组件,例如 JEditorPane
或 JTextPane
。欲了解更多信息。使用它们,请参阅How to Use Editor Panes and Text Panes。
也有人指出,整个String
必须以<html>
开头。
【讨论】:
【参考方案2】:您不能在 JTextArea
中使用 HTML,但可以将其与 JEditorPane
一起使用
【讨论】:
【参考方案3】:JTextArea 不支持带样式的文本区域,为了呈现 HTML,您需要 JEditorPane 或 JTextPane 的实例。请参阅tutorial on Using Text Components 。
示例代码here
【讨论】:
【参考方案4】:如果没记错的话,JTextArea 仅用于纯文本显示。对于 HTML,您必须使用 JEditorPane 或其子类之一。
【讨论】:
【参考方案5】:Java 仅在 html 代码以 <html>
开头时才呈现它。你应该尝试一下
"<html>Result: <font color=red>" + negativeValue + "</font></html>"
【讨论】:
..并且仅当它被放入样式文本组件中时。 ;)以上是关于Java - 在 JTextArea 中将颜色设置为文本的主要内容,如果未能解决你的问题,请参考以下文章
java中TextArea/JTextArea的对齐方式怎么设置的?
如何在 Android Java 中将 Color.RED 代码转换为颜色的整数值? [复制]