【问题标题】:How to display bold text in only parts of JTextArea?如何仅在部分 JTextArea 中显示粗体文本?
【发布时间】:2016-05-25 16:01:31
【问题描述】:

我可以将JTextArea 的文本更改为粗体(附加文本)然后恢复正常吗?它只会以粗体显示粗体文本,其余的则正常显示吗?

JTextArea的内容也可以保存为RTF文档吗?

【问题讨论】:

  • 我会使用 JTextPane。它比尝试格式化和操作 HTML 更容易使用。单击指向 Swing 教程的链接以获取工作示例。
  • 谢谢。请提供链接。 :)

标签: java swing jtextarea


【解决方案1】:

没有。你要找的是JEditorPane

这支持 HTML(3.2?),这将允许您使用 <font>(和其他旧标签)来提供富文本。

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

EDIT:根据我上面引用的javadoc,JEditorPane 也支持有限的RTF。别忘了把 MIME 改成text/rtf

【讨论】:

  • 如何将文本附加到 JEditorPane?设置文本?获取文本?
  • @ikurtz 是的,setText(getText() + "...");
  • 抱歉,这不起作用。由于引入了多个 标记,因此只显示第一次出现,其余数据被忽略。
【解决方案2】:
 textArea.setFont(textArea.getFont().deriveFont(Font.BOLD, textArea.getFont().getSize()));

【讨论】:

  • 欢迎来到 Stack Overflow!虽然这段代码可以解决问题,但最好为可能不理解这段代码的人添加详细说明并解释它是如何工作的。
【解决方案3】:

我相信您需要JTextPane or JEditorPane

【讨论】:

    猜你喜欢
    • 2019-05-03
    • 2022-01-20
    • 1970-01-01
    • 2018-03-03
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多