我对JEditorPane有一个奇怪的问题。我使用相同的组件来显示所选的音符。问题是当执行第二个音符的setText()方法时,不会删除第一个音符中的某些标签。
您可以通过代码重现问题:
public static void main(String[] args) {
JEditorPane editor=new JEditorPane();
editor.setContentType("text/html");
String html="<map name=\"map\">\n" +
"<area shape=\"rect\" href=\"http://www.test.com/index.php\" target=\"_blank\" coords=\"8, 171, 141, 195\"></area>" +
"</map>"
+ "<p>1111</p>";
editor.setText(html); // first note
editor.setText("<p>2222</p>"); // second note
System.out.println(editor.getText());
}
此代码的结果是:
<html>
<head>
</head>
<body>
<map name="map">
<area coords="8, 171, 141, 195" href="http://www.test.com/index.php" target="_blank" shape="rect"></area>
</map>
<p>
2222
</p>
</body>
</html>
&LT;映射&GT;和&lt; area&gt;设置第二个音符时,第一个音符的标签仍在JEditorPane中。
有什么问题?如何使用setText方法删除所有以前的HTML内容?
感谢。
编辑:
我找到了解决此问题的方法。它很难看,但它确实有效。
editor.setText(html);
editor.setContentType("text/plain");
editor.setContentType("text/html");
editor.setText("<p>2222</p>");