java - 将 HTML 内容添加到与 JTextPane 关联的文档

标签 java html swing document jtextpane

我对我正在制作的一些简单控制台有疑问。我知道可以使用函数 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());

最佳答案

您需要使用 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);

关于java - 将 HTML 内容添加到与 JTextPane 关联的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5133240/

相关文章:

java - 如何更改 JMenuBar 和 JToolBar 的背景颜色?

java - 能否将 Java Swing 桌面应用程序转换为 UWP 百年纪念应用程序 (AppX)?

java - 在 JPanel [][] 表上使用 mouseListener 单击

Java 子字符串在字符串验证后中断

java - 如何监控 future 任务完成的后台任务

Java.NullPointerException null(再次)

javascript - 尽管用户名和密码正确,但 PHP 和 Javascript 登录不起作用

c++ - 需要 C++ HTML 解析器 + 正则表达式支持

javascript - 事件监听器只工作一次

Java - Swing 组件本地化 - 在哪里可以找到语言包?