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

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

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

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

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

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

【问题讨论】:

    标签: java string swing colors


    【解决方案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>"
            

            【讨论】:

            • ..并且仅当它被放入样式文本组件中时。 ;)
            猜你喜欢
            • 1970-01-01
            • 2015-09-21
            • 2010-10-28
            • 2016-02-05
            • 2021-11-29
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多