2014-02-28 34 views
4

問題:我的樹的葉節點的內容是HTML,但我不希望它們呈現爲HTML。如何在JTree中將純文本顯示爲HTML?

許多Swing組件可以包含HTML片段以改變它們的渲染方式。這包括JTree的節點:

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

如果這個節點添加到DefaultTreeModel,和模型到JTree,它會呈現內容的HTML。

我該如何預防?我如何強制它被呈現爲純文本?

編輯:@大衛華萊士的答案(見下文)的作品。下面是它的外觀:

enter image description here

+1

你是說你想要顯示HTML源代碼嗎?或者你只是說你希望它顯示爲未格式化(就好像標籤等不在那裏一樣)? –

+0

我想顯示來源。我想看到整個字符串,包括標籤。 –

+1

通過使用HTML實體? '<html>'? –

回答

5

從Apache共享庫使用StringEscapeUtils類,逃避你的HTML,然後將其放在<html><body>告訴擺幅結果顯示爲HTML。

import org.apache.commons.lang3.StringEscapeUtils; 

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

非常好,謝謝你,@David Wallace。 –