Подтвердить что ты не робот

Добавить HTML-контент в документ, связанный с JTextPane

У меня вопрос о какой-то простой консоли, которую я создаю. Я знаю, что можно добавить html-содержимое в JTextPane с помощью функции setText() с ранее установленным setContentType("text/html");. Но для потребностей моего приложения мне нужно напрямую работать с javax.swing.text.Document, который я получаю с помощью функции getDocument() (например, для удаления строк и добавления новых, да, это какая-то консоль, я и я уже видел несколько примеров в предыдущих вопросах StackOverflow, но ни один из них не отвечает моим потребностям). Итак, я хочу, чтобы вставить HTML в документ и правильно его отобразить на моей JTextPane. Проблема заключается в том, что когда я добавляю HTML-контент с помощью метода insertString() (который принадлежит документу), 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());
4b9b3361

Ответ 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);