2011-02-27 11 views
12
ile ilişkili bir dokümana HTML içeriği ekleyin

Yaptığım bazı basit konsola ilişkin bir sorum var. Önceden ayarlanmış setContentType("text/html"); ile JTextPane işlevine setText() işlevine html içeriği eklemenin mümkün olduğunu biliyorum. Ama benim uygulama ihtiyaçları için getDocument() fonksiyonu ile aldığım javax.swing.text.Document ile doğrudan çalışmam gerekiyor (örneğin satırları kaldırmak ve yenilerini eklemek için, evet yapıyorum konsolu ve Önceki StackOverflow sorularında çok sayıda örnek görmüştüm ama bunların hiçbiri benim ihtiyaçlarına cevap vermiyordu. Yani, istediğim HTML'yi belgeye eklemek ve JTextPane'imde doğru şekilde işlenmesini sağlamaktır. Sorun, HTML içeriğini insertString() yöntemiyle (belgeye ait olan) eklediğimde, JTextPane bunu oluşturmuyor ve çıktı olarak tüm html etiketlerini görüyorum. Bu çalışmayı doğru şekilde yapmanın bir yolu var mı?JtextPane

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()); 

cevap

26

Bir HTMLEditorKit kullanarak eklemek gerekir:

Ben metin eklemek nasıl.

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

Teşekkürler, ihtiyacım olan şey;) – Serhiy

+0

Teşekkür ederiz! Bu mükemmel çalıştı. – Qix

+1

Bunu arıyordum ve yardımcı oldu, çok teşekkürler, ancak köprüler için metnin mavi renkte ve alt çizgi üzerinde gösterilmesini sağlayan UI oluşturma işlemi gerçekleşmedi. Herhangi bir yardım – Kiran