使用JEditorPane编辑html文本

时间:2014-01-18 17:35:58

标签: java html swing jeditorpane

我写了一个文本编辑器,将文本保存为html。

我对粗体,斜体等样式没有任何问题,我遇到的唯一问题是当我按下回车时它的行为方式。 它不是创建新的法线,而是创建一个额外的间距线。我认为它与<p>标签有关,但我不确定...... 无论如何,这是我的问题的一个例子:

import java.awt.BorderLayout;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.text.html.HTMLEditorKit;

public class test extends JFrame {

    public static void main(String[] args){
        new test().open();
    }

    private void open() {
        setSize(200, 200);
        JEditorPane jp = new JEditorPane();
        setLayout(new BorderLayout());
        add(jp, BorderLayout.CENTER);

        jp.setEditorKit(new HTMLEditorKit());
        jp.setText("<html><body><p>hey</p><p>Write in here</p></body></html>");
        setVisible(true);
    }
}

有没有解决这个问题?

1 个答案:

答案 0 :(得分:0)

我认为你试图在呈现HTML之后直接编辑到JEditorPane。 JEdi​​torPane读取您提供的文本,并根据文本附带的HTML标记呈现它。所以,如果你想让你的文本中的某个点有换行符,那么你需要输入一个break标记,如下所示:

public class test extends JFrame
{
  public static void main(String[] args){
    test t = new test();
    t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    t.open();
  }

  private void open()
  {
    setSize(200, 200);
    JEditorPane jp = new JEditorPane();
    jp.setEditable(false);
    setLayout(new BorderLayout());
    add(jp, BorderLayout.CENTER);

    jp.setEditorKit(new HTMLEditorKit());
    jp.setText("<html><body><p>hey</p><p>Don't write here.<br>Let JEditor rendor your HTML text. </p></body></html>");
    setVisible(true);
  }
}

希望这有帮助。