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

时间:2014-02-28 19:28:13

标签: java html swing jtree

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

许多Swing组件可以包含HTML代码段,以便更改它们的呈现方式。这包括JTree

的节点
DefaultMutableTreeNode myLeafNode = new DefaultMutableTreeNode("<html><body><h1>Hello World</h1></body></html>");

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

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

编辑:@ David Wallace的回答(见下文)有效。这是它的外观:

enter image description here

1 个答案:

答案 0 :(得分:5)

使用Apache Commons库中的StringEscapeUtils类来转义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>");