最佳答案
在我看来,您的索引有问题。当您移动到第二行时,它会减少一位。
这向我表明您正在使用 textPane.getText()
来获取要标记化的文本。
解决方案是直接从文档中获取文本:
int length = textPane.getDocument().getLength();
String text = textPane.getDocument().getText(0, length);
查看Text and New Lines了解两种方法之间的差异。
基本上,每行的索引都会减少一,因为字符串中每个换行符都包含“\r\n”,但文档仅包含“\n”。
如果这没有帮助,那么您需要自己调试代码以找出偏移量错误的原因。
关于java - JTextPane 中文本颜色更改不准确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46483946/