Java 使用编辑窗格编辑html文本

Java 使用编辑窗格编辑html文本,java,html,swing,jeditorpane,Java,Html,Swing,Jeditorpane,我编写了一个文本编辑器,将文本保存为html 我对粗体、斜体等样式没有问题,唯一的问题是当我按enter键时它的行为方式。 它不创建新的法线,而是创建一条额外的间隔线。我认为这与标记有关,但我不确定。。。 无论如何,这里有一个我的问题的例子: import java.awt.BorderLayout; import javax.swing.JEditorPane; import javax.swing.JFrame; import javax.swing.text.html.HTMLEditor

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

我对粗体、斜体等样式没有问题,唯一的问题是当我按enter键时它的行为方式。 它不创建新的法线,而是创建一条额外的间隔线。我认为这与
标记有关,但我不确定。。。 无论如何,这里有一个我的问题的例子:

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);
    }
}
导入java.awt.BorderLayout;
导入javax.swing.JEditorPane;
导入javax.swing.JFrame;
导入javax.swing.text.html.HTMLEditorKit;
公共类测试扩展了JFrame{
公共静态void main(字符串[]args){
新测试().open();
}
私隐无效公开(){
设置大小(200200);
JEditorPane jp=新的JEditorPane();
setLayout(新的BorderLayout());
添加(jp,BorderLayout.CENTER);
jp.setEditorKit(新的HTMLEditorKit());
jp.setText(“嘿

在这里写”

”; setVisible(真); } }

有什么办法可以解决这个问题吗?

我想你是想在JEditorPane呈现HTML后直接编辑它。JEditorPane读取您提供的文本,并根据文本附带的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);
  }
}
公共类测试扩展JFrame
{
公共静态void main(字符串[]args){
测试t=新测试();
t、 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
t、 open();
}
私隐无效公开()
{
设置大小(200200);
JEditorPane jp=新的JEditorPane();
jp.setEditable(false);
setLayout(新的BorderLayout());
添加(jp,BorderLayout.CENTER);
jp.setEditorKit(新的HTMLEditorKit());
jp.setText(hey

不要在这里写。
让JEditor来翻译你的HTML文本。

”; setVisible(真); } }

希望这能有所帮助。

你能在处理关键事件的地方发布代码吗?@JuanManuel我没有任何处理关键事件的代码:/看看
HTMLDocumentEditor
,引用。谢谢你的回答,但这实际上并没有回答问题。。。JEditorPane旨在让用户编辑HTML文件的文本(每个示例),而不仅仅是查看它。