【问题标题】:Add HTML content to Document associated with JTextPane将 HTML 内容添加到与 JTextPane 关联的 Document
【发布时间】:2011-07-05 05:32:12
【问题描述】:

我对我正在制作的一些简单控制台有疑问。我知道可以使用先前设置的 setText() 函数将 html 内容添加到 JTextPane 中 setContentType("text/html"); 。但是为了我的应用程序的需要,我需要直接使用 javax.swing.text.Document,我使用 getDocument() 函数获得它(例如,用于删除行并附加新行,是的,我是这样的控制台我已经在之前的 StackOverflow 问题中看到了几个例子,但没有一个能满足我的需求)。所以,我想要的是将 HTML 插入到文档中,并让它在我的 JTextPane 上正确呈现。问题是当我使用insertString() 方法(属于文档)添加 HTML 内容时,JTextPane 没有呈现它,并且在输出中我看到了所有 html 标记。有什么办法可以让它正常工作吗?

这就是我插入文本的方式:

text_panel = new JTextPane();
text_panel.setContentType("text/html");

//...

Document document = text_panel.getDocument();
document.insertString(document.getLength(), line, null);
text_panel.setCaretPosition(document.getLength());

【问题讨论】:

    标签: java html swing document jtextpane


    【解决方案1】:

    您需要使用HTMLEditorKit 插入。

        JTextPane text_panel = new JTextPane();
        HTMLEditorKit kit = new HTMLEditorKit();
        HTMLDocument doc = new HTMLDocument();
        text_panel.setEditorKit(kit);
        text_panel.setDocument(doc);
        kit.insertHTML(doc, doc.getLength(), "<b>hello", 0, 0, HTML.Tag.B);
        kit.insertHTML(doc, doc.getLength(), "<font color='red'><u>world</u></font>", 0, 0, null);
    

    【讨论】:

    • 谢谢,这是我需要的;)
    • 我一直在寻找它,它有帮助,非常感谢,但是,对于超链接,UI 渲染以在悬停和下划线时以蓝色显示文本并没有发生。任何帮助
    猜你喜欢
    • 1970-01-01
    • 2013-11-17
    • 2015-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-16
    相关资源
    最近更新 更多