2011-02-27 4 views
12

나는 만들고있는 간단한 콘솔에 관해 질문이 있습니다. 이전에 setContentType("text/html");으로 설정되어있는 setText() 함수를 사용하여 JTextPane에 html 콘텐츠를 추가 할 수 있다는 것을 알고 있습니다. 하지만 내 응용 프로그램의 필요성에 대해 나는 직접적으로 (예 : 줄을 제거하고 새로운 것들을 추가하기 위해) 예를 들어 getDocument() 함수와 함께 javax.swing.text.Document를 사용하여 작업해야한다. 이전 StackOverflow 관련 질문에서 몇 가지 예를 이미 보았지만 그 중 아무 것도 내 필요에 맞지 않습니다. 그래서, 내가 원하는 건 HTML을 문서에 삽입하고 JTextPane에 올바르게 렌더링되도록하는 것입니다. 문제는 insertString() 메서드 (문서에 속함)가있는 HTML 콘텐츠를 추가 할 때 JTextPane이 렌더링하지 않고 출력에서 ​​모든 HTML 태그를 볼 때입니다. 제대로 작동하는 방법이 있습니까?JTextPane과 관련된 문서에 HTML 컨텐트 추가

text_panel = new JTextPane(); 
text_panel.setContentType("text/html"); 

//... 

Document document = text_panel.getDocument(); 
document.insertString(document.getLength(), line, null); 
text_panel.setCaretPosition(document.getLength()); 

답변

26

당신은 HTMLEditorKit를 사용하여 삽입해야합니다

그건 내가 텍스트를 삽입하는 방법입니다.

JTextPane text_panel = new JTextPane(); 
    HTMLEditorKit kit = new HTMLEditorKit(); 
    HTMLDocument doc = new HTMLDocument(); 
    text_panel.setEditorKit(kit); 
    text_panel.setDocument(doc); 
    kit.insertHTML(doc, doc.getLength(), "<b>hello", 0, 0, HTML.Tag.B); 
    kit.insertHTML(doc, doc.getLength(), "<font color='red'><u>world</u></font>", 0, 0, null); 
+1

감사합니다.이게 내가 필요한 것입니다.) – Serhiy

+0

감사합니다! 이것은 완벽하게 작동했습니다. – Qix

+1

나는 이것을 찾고 도움을주었습니다. 대단히 감사합니다. 그러나 하이퍼 링크의 경우 가져 오기 및 밑줄을 그릴 때 파란색으로 표시된 텍스트를 표시하는 UI 렌더링이 발생하지 않았습니다. 어떤 도움 – Kiran

관련 문제