问题:我树的叶子节点的内容是HTML,但我不希望它们呈现为HTML。
许多Swing组件可以包含HTML代码段,以便更改它们的呈现方式。这包括JTree
:
DefaultMutableTreeNode myLeafNode = new DefaultMutableTreeNode("<html><body><h1>Hello World</h1></body></html>");
如果此节点已添加到DefaultTreeModel
,模型已添加到JTree
,则会将内容呈现为HTML。
如何防止这种情况?如何强制将其呈现为纯文本?
编辑:@ David Wallace的回答(见下文)有效。这是它的外观:
答案 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>");