如何在JTree中将纯文本显示为HTML?

jam*_*iss 4 html java swing jtree

问题:我树的叶节点的内容是HTML,但我不希望它们呈现为HTML.

许多Swing组件可以包含HTML的片段,以便更改它们的呈现方式.这包括以下节点JTree:

DefaultMutableTreeNode myLeafNode = new DefaultMutableTreeNode("<html><body><h1>Hello World</h1></body></html>");
Run Code Online (Sandbox Code Playgroud)

如果将此节点添加到DefaultTreeModel,并将模型添加到该节点JTree,则会将内容呈现为HTML.

我该如何防止这种情况?如何强制将其呈现为纯文本?

编辑:@David Wallace的答案(见下文)有效.以下是它的外观:

在此输入图像描述

Daw*_*ica 5

使用StringEscapeUtilsApache Commons库中的类来转义HTML,然后将其放入内部<html><body>告诉Swing将结果显示为HTML.

import org.apache.commons.lang3.StringEscapeUtils;

String escapedHtml = StringEscapeUtils.escapeHtml4(htmlToDisplay); 
DefaultMutableTreeNode myLeafNode = 
    new DefaultMutableTreeNode("<html><body>" + escapedHtml + "</body></html>");
Run Code Online (Sandbox Code Playgroud)