如何在JTextArea的部分文本中显示加粗字体?

8

我可以将 JTextArea 的文本加粗(追加文本),然后恢复为正常文本,只有加粗的文本会以加粗形式显示,其余文本仍为正常形式。

此外,JTextArea 的内容能保存为 RTF 文档吗?


我会使用JTextPane。它比尝试格式化和操作HTML更容易。单击链接以获取工作示例的Swing教程。 - camickr
谢谢。请贡献链接。 :) - iTEgg
3个回答

19

不,你需要的是JEditorPane

这支持HTML(3.2?),可以让你使用<font>(和其他旧标签)来提供丰富的文本。

JEditorPane textarea = new JEditorPane("text/html", "");
textarea.setText("Here is some <b>bold text</b>");

编辑:根据我参考的上面的javadoc,JEditorPane还支持有限的RTF。不要忘记将MIME更改为text/rtf


你会如何向JEditorPane追加文本?使用setText还是getText? - iTEgg
@ikurtz 是的,setText(getText() + "..."); - Matt
抱歉,这不起作用。因为引入了多个<html></html>标签,所以只显示第一个出现的内容,其余数据被忽略。 - iTEgg

3
 textArea.setFont(textArea.getFont().deriveFont(Font.BOLD, textArea.getFont().getSize()));

10
欢迎来到Stack Overflow!虽然这段代码可以解决问题,但最好还是加上一些详细说明,以便为可能不理解这段代码的人解释其工作原理。 - Papershine

1

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