JTextPane双回车

时间:2015-10-12 20:58:01

标签: java swing newline jtextpane

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

创建的
System.getProperty("line.separator")

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

jtp.setText(otxt);

一切顺利 - 我从

转换为char数组
jtp.getText()

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

jtp.insertString(0 /*offset*/, otxt, attributeSet /*italic, bold or whatever stylistic property*/)

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

1 个答案:

答案 0 :(得分:5)

Document类仅在文档中存储"\n"。所以你不应该试图插入" \ r"字符indo the Document。

如果您想为Document添加换行符,只需插入"\n"

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

因此,对于Windows," \ n"将替换为" \ r \ n"对你而言。

查看Text and New Lines以获取有关此主题的更多信息。