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();
}
}
的这个输出是:
我不知道为什么箱(好像输入字段)出现在其中的标签名称为aa
?
当我在JTextPane
对象jtp
上设置可编辑的false时它消失。
jtp.setEditable(false);
你能解释一下吗?
看起来HTML解析器错误地解释了“”。如果删除“aa”周围的尖括号,则不应该发生这种情况。我不确定解析器是否与标准浏览器中的解析器相媲美。 –
2012-03-11 04:22:37
我相信JTextPane用于呈现html字符串的HTML解析器无法与标准浏览器的功能进行比较。但是,我想知道他们为什么将解释成这样的盒子? –
gtiwari333
2012-03-11 04:29:39
我猜测,这只是JTextPane对未知HTML标签的回退。我做了一些搜索,并在本页看到了一条有趣的评论:http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4765240。检查最后一条评论,这表明可能会解决该回退行为。如果它适合你,那么我会将它作为答案发布。 – 2012-03-11 04:41:36