2012-03-11 40 views
2

我今天沒有在JTextPane中使用過HTML,並且今天玩這個。我遇到了奇怪的輸出。JTextPane中的html - 奇怪的框出現標記

這裏是我的簡單的代碼,htmlStr包含包含標記<aa>

public class HtmlInJTextPaneTest extends JFrame { 
    private JTextPane jtp; 
    private String htmlStr= "<html><body><b>What is this</b> <aa > ?? </body></html>"; 
    public HtmlInJTextPaneTest() { 
     jtp = new JTextPane(); 
     jtp.setContentType("text/html"); 
     jtp.setText(htmlStr); 
     //jtp.setEditable(false); 

     //jFrame setup 
     add(jtp); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setSize(200, 100); 
     setVisible(true); 
    } 
    public static void main(String[] args) { 
     new HtmlInJTextPaneTest(); 
    } 
} 

的這個輸出是:

enter image description here

我不知道爲什麼箱(好像輸入字段)出現在其中的標籤名稱爲aa

當我在JTextPane對象jtp上設置可編輯的false時它消失。

jtp.setEditable(false); 

你能解釋一下嗎?

+0

看起來HTML解析器錯誤地解釋了「」。如果刪除「aa」周圍的尖括號,則不應該發生這種情況。我不確定解析器是否與標準瀏覽器中的解析器相媲美。 – 2012-03-11 04:22:37

+0

我相信JTextPane用於呈現html字符串的HTML解析器無法與標準瀏覽器的功能進行比較。但是,我想知道他們爲什麼將解釋成這樣的盒子? – gtiwari333 2012-03-11 04:29:39

+1

我猜測,這只是JTextPane對未知HTML標籤的回退。我做了一些搜索,並在本頁看到了一條有趣的評論:http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4765240。檢查最後一條評論,這表明可能會解決該回退行爲。如果它適合你,那麼我會將它作爲答案發布。 – 2012-03-11 04:41:36

回答