Java 使用新行检查异常行为

Java 使用新行检查异常行为,java,swing,jeditorpane,Java,Swing,Jeditorpane,我试图突出显示JEditorPane文本字段中的文本,并保存所选文本的索引。然而,当我保存选择时,我总是遇到问题。绝地武士窗格似乎每次都以不同的方式保存新行。当用户按enter键时,它将写入一个“\n”,“\r”,有时甚至写入一个“\r\n”。有时,JEditorPane甚至会忽略回车,这会导致错误的选择索引 当用户按下enter键时,是否可能获得一致的行为?为什么要使用JEditorPane。这是用于显示HTML的,HTML通常没有换行符。在HTML中使用“br”标记。对于普通文本,您应该使用

我试图突出显示
JEditorPane
文本字段中的文本,并保存所选文本的索引。然而,当我保存选择时,我总是遇到问题。绝地武士窗格似乎每次都以不同的方式保存新行。当用户按enter键时,它将写入一个
“\n”
“\r”
,有时甚至写入一个
“\r\n”
。有时,JEditorPane甚至会忽略回车,这会导致错误的选择索引


当用户按下enter键时,是否可能获得一致的行为?

为什么要使用JEditorPane。这是用于显示HTML的,HTML通常没有换行符。在HTML中使用“br”标记。对于普通文本,您应该使用JTextPane或JTextArea

我试图突出显示文本

字符串中的文本取决于您正在使用的组件,以及您是从文档还是组件中获取文本

通常,您应该从文档中获取文本,因为文档仅存储“\n”,因此您应该能够正确计算偏移量并突出显示文本

从组件获取文本时,平台新行字符串将插入文本中,这将导致偏移问题


有关更多信息,请参阅。

您需要发布一个复制您看到的行为的日志
JEditorPane
的新行行为记录在JavaDoc for中(链接自,指向类级文档的底部),您描述的内容与此不同。我使用JEditorPane是因为我想突出显示文本。我将高光的索引保存在数据库中,然后使用以前保存的索引生成高光。因为按下enter键会出现意外行为,所以高亮显示与原始高亮显示不再对应。@Ferre12,
我使用的是JEditorPane,因为我想高亮显示文本
-您可以高亮显示任何文本组件中的文本。同样,JEditorPane仅适用于HTML。我觉得你不是在用HTML。