JTextPane双回车

Hri*_*tov 4 java swing newline jtextpane

我正在使用一个JTextPane对象,假设它的名字是jtp,所以我可以用斜体粗体显示一些有点短的String .我有一个字符串,我们将其命名为具有换行符的otxt.鉴于我使用的是Windows,它意味着\ r \n并使用它创建

System.getProperty("line.separator")
Run Code Online (Sandbox Code Playgroud)

并且在它们完全形成之前消除所有疑虑,我将我的String转换为char数组,走过char数组并在Eclipse控制台中编写所有字符的代码,使用隐式转换通过强制转换为int,是的,只有一个代码13 ,代表\ r和只有一个代码10,代表\n.现在,如果我使用

jtp.setText(otxt);
Run Code Online (Sandbox Code Playgroud)

一切都很顺利 - 我从中转换为char数组

jtp.getText()
Run Code Online (Sandbox Code Playgroud)

并打印出所有字符的代码,我只有一个代码13(\ r)和一个代码10(\n),因为我应该有.但我需要用斜体粗体显示otxt的某些部分,所以我必须使用

jtp.insertString(0 /*offset*/, otxt, attributeSet /*italic, bold or whatever stylistic property*/)
Run Code Online (Sandbox Code Playgroud)

这是一个大问题:这会创建\ r \n \n \n \n我应该有\ r \n.这是使用相同的过程确认的:1)从jtp.getText()到char数组的字符串; 2)走阵; 3)打印字符代码; 我看到代码13(\ r)两次和代码10(\n)一次.帮我解决这个问题.希望你能找到有趣的问题.

cam*_*ckr 5

Document类只存储"\n"在文档.因此,您不应尝试在Document中插入"\ r"字符.

如果要添加换行符,Document只需插入即可"\n".

当您使用getText()文本组件时,该方法将使用当前平台的换行符字符串替换Document中的"\n"字符.

因此对于Windows,"\n"将替换为"\ r \n".

有关此主题的更多信息,请查看文本和新行.