带有新行的 JEditorPane 意外行为

JEditorPane unexpected behavior with new lines

我正在尝试突出显示 JEditorPane 文本字段中的文本并保存所选文本的索引。但是,当我保存选择时,我一直 运行 遇到问题。 JEdi​​torPane 似乎每次都以不同的方式保存新行。当用户按下回车键时,它会写入一个 "\n"、一个 "\r",有时甚至是一个 "\r\n"。有时 JEditorPane 甚至会忽略导致错误选择索引的回车 returns。

是否有可能在用户按下回车键时获得一致的行为?

为什么要使用 JEditorPane。那是为了显示 HTML 而 HTML 一般没有换行符。您在 HTML 中使用 "br" 标签。对于普通文本,您应该使用 JTextPane 或 JTextArea。

I am trying to highlight text

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

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

当您从组件中获取文本时,平台新行字符串会插入到文本中,这会导致您出现偏移问题。

有关详细信息,请参阅 Text and New Lines