Java JEditorPane内容类型";text/html";不创建段落的换行符

Java JEditorPane内容类型";text/html";不创建段落的换行符,java,html,swing,Java,Html,Swing,当我使用setContentType(“text/html”)创建一个JEditorPane并按enter键编辑文本时,将创建一个新的html段落()。有没有办法插入换行标记()来代替它 以下是一个例子: import javax.swing.*; 导入java.awt.event.WindowAdapter; 导入java.awt.event.WindowEvent; 公开课考试{ 公共静态void main(字符串[]args){ JFrame=新JFrame(); frame.setDef

当我使用
setContentType(“text/html”)
创建一个
JEditorPane
并按enter键编辑文本时,将创建一个新的html段落(

)。有没有办法插入换行标记(

)来代替它

以下是一个例子:

import javax.swing.*;
导入java.awt.event.WindowAdapter;
导入java.awt.event.WindowEvent;
公开课考试{
公共静态void main(字符串[]args){
JFrame=新JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(空);
frame.setTitle(“文本区域”);
JEditorPane编辑器=新的JEditorPane();
setContentType(“text/html”);
Box pane=Box.createVerticalBox();
添加(编辑器);
框架。添加(窗格);
框架。设置尺寸(500500);
frame.addWindowListener(新的WindowAdapter()
{
@凌驾
公共无效窗口关闭(WindowEvent e)
{
System.out.println(editor.getText());
e、 getWindow().dispose();
}
});
frame.setVisible(true);
}
}
这是书面文本的输出:


一线

这是一条新路线

这就是我想要的:


第一行
这是一条新路线


我可以解决它,为
Shift+Enter
组合键创建一个新操作:

private静态最终字符串NEW\u LINE=“NEW LINE”;
私有静态无效初始化编辑器窗格(编辑器窗格文本区域){
HTMLEditorKit=新的HTMLEditorKit();
textArea.setEditorKit(套件);
InputMap input=textArea.getInputMap();
击键移位器=击键。getKeyStroke(“移位输入”);
输入。输入(移位器,新的_线);
ActionMap actions=textArea.getActionMap();
actions.put(NEW_行,NEW AbstractAction(){
@凌驾
已执行的公共无效操作(操作事件e){
试一试{
kit.insertHTML((HTMLDocument)textArea.getDocument(),textArea.getCaretPosition(),
“
”,0,0,HTML.Tag.br); textArea.setCaretPosition(textArea.getCaretPosition());//这会将插入符号移动到下一行 }捕获(BadLocationException | IOException ex){ 例如printStackTrace(); } } }); }
编辑创建

的常用方法是使用[shift]+[enter]。试试吧,谢谢。JEditorPane在默认情况下不可能这样做。但是,我可以通过创建一个新动作来解决它。很好!很高兴你把它整理好了。:)非常感谢您的评论和帮助。我已经接受了答案。我也希望在以后的帖子中看到你。