【问题标题】:How do I display HTML as plain text in a JTree?如何在 JTree 中将 HTML 显示为纯文本?
【发布时间】:2014-04-01 23:40:29
【问题描述】:

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

许多 Swing 组件可以包含 HTML 的 sn-ps 以更改它们的呈现方式。这包括JTree 的节点:

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

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

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

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

【问题讨论】:

  • 您是说要显示 HTML 源代码吗?或者您只是说您希望它显示为未格式化(好像标签等不存在)?
  • 我要显示来源。我想查看整个字符串,包括标签。
  • 使用 HTML 实体? &amp;lt;html&amp;gt;?
  • @Mr.Alien 和我尝试了 HTML 实体的想法——这是一种新颖的方法——但不幸的是,这并没有奏效。实体被呈现为纯文本而不是实体。结果输出不是很漂亮。
  • 那是因为在 Alien 先生的回答中,String 的开头不再是 "&lt;html&gt;" - 这就是 Swing 用来决定如何显示它的原因。

标签: java html swing jtree


【解决方案1】:

使用 Apache Commons 库中的 StringEscapeUtils 类来转义 HTML,然后将其放入 &lt;html&gt;&lt;body&gt; 中以告诉 Swing 将结果显示为 HTML。

import org.apache.commons.lang3.StringEscapeUtils;

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

【讨论】:

    猜你喜欢
    • 2013-05-19
    • 2011-10-12
    • 1970-01-01
    • 2020-03-25
    • 1970-01-01
    • 2015-10-20
    • 2015-07-06
    • 1970-01-01
    • 2011-05-13
    相关资源
    最近更新 更多