2014-02-28 3 views
4

문제 : 내 트리의 리프 노드 내용이 HTML이지만 HTML로 렌더링하지 않으려합니다.JTree에 HTML을 일반 텍스트로 표시하려면 어떻게해야합니까?

많은 Swing 구성 요소에는 렌더링 방법을 변경하기 위해 HTML 스 니펫이 포함될 수 있습니다. 이것은 JTree의 노드를 포함 :이 노드가 DefaultTreeModel에 추가하고, JTree에 모델

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

경우는 HTML로 콘텐츠를 렌더링합니다.

어떻게 방지합니까? 어떻게 강제로 일반 텍스트로 렌더링 할 수 있습니까?

: @David Wallace의 답변 (아래 참조)이 작동합니다. 여기 보이는 방법은 다음과 같습니다

enter image description here

+1

HTML 소스를 표시 하시겠습니까? 아니면 그냥 태그가없는 등의 형식으로 표시되기를 원한다고 말하는 것입니까? –

+0

소스를 표시하고 싶습니다. 태그를 포함하여 전체 String을보고 싶습니다. –

+1

HTML 엔티티를 사용 하시겠습니까? '<html>'? –

답변

5

는 HTML로 결과를 표시하는 스윙에게 <html><body> 안에 넣어, 당신의 HTML을 탈출, 아파치 커먼즈 라이브러리에서 StringEscapeUtils 클래스를 사용합니다.

import org.apache.commons.lang3.StringEscapeUtils; 

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

아주 좋았어, 고마워, 데이빗 월러스. –

관련 문제