JEdi​​torPane setText会记住一些标签

时间:2014-07-21 15:06:43

标签: java jeditorpane

我对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>");

0 个答案:

没有答案