Java 在JEditor窗格中设置插入符号会导致异常

Java 在JEditor窗格中设置插入符号会导致异常,java,caret,jeditorpane,Java,Caret,Jeditorpane,我有一个窗格,其中有一些HTML格式的文本。当我执行以下命令时 int len=editorPane.getText().length() len的值为7473。但我试着做以下几点: editorPane.setCaretPosition(4995) 我得到了以下异常:java.lang.IllegalArgumentException:bad position:4995 我的理解是,只有当我试图设置插入符号的位置小于0或大于文本长度时,才会出现此异常。两者都不是。这怎么可能 谢谢, Ellio

我有一个窗格,其中有一些HTML格式的文本。当我执行以下命令时

int len=editorPane.getText().length()

len的值为7473。但我试着做以下几点:

editorPane.setCaretPosition(4995)

我得到了以下异常:java.lang.IllegalArgumentException:bad position:4995

我的理解是,只有当我试图设置插入符号的位置小于0或大于文本长度时,才会出现此异常。两者都不是。这怎么可能

谢谢,


Elliott

我认为问题在于文本不仅包含可渲染字符(文本中有HTML标记)。我猜setCaretPosition想要获得可见的文本位置

例如,如果
text=“123”
并调用
editorPane.setCaretPosition(2)
,我认为插入符号将在“2”和“3”之间

int len = editorPane.getText().length();
提供文本和标记的长度

尝试使用:

int len = editorPane.getDocument().getLength();
这只会给出文档中文本的长度