Java - 在JTextArea中设置文本颜色的Swing方法

5

我有一个JTextArea,其中的文本设置为一个信息字符串。在这个信息字符串中,我有一个变量,我想将它标记为红色。为了实现这一点,我按照如下方式编辑字符串:

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

我希望这个操作会返回结果:##(其中的数字是红色的)。然而,它只是将以下内容放入文本区域:

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

我不太确定如何让这个工作起来,所以能否有人提供建议如何做到这一点?

5个回答

8

JTextArea 不是专门用来处理样式化文本的组件。如果文本只需要一种颜色,可以使用 setForeground(Color) 方法。

否则,请使用专门用于处理样式化文本的组件,例如JEditorPaneJTextPane。有关如何使用它们的更多信息,请参见How to Use Editor Panes and Text Panes

此外,正如其他人指出的那样,整个String必须以<html>开头。


1
如果我没记错的话,JTextArea 只适用于纯文本显示。如果要显示 HTML,则必须使用 JEditorPane 或其子类之一。

1

JTextArea 中无法使用 HTML,但是可以在 JEditorPane 中使用。


1

0

只有当HTML代码以<html>开头时,Java才会呈现它。你应该像这样尝试它

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

2
只有当它被放入样式文本组件中时才会生效。 ;) - Andrew Thompson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接