Java 在JEditor窗格中设置插入符号会导致异常
我有一个窗格,其中有一些HTML格式的文本。当我执行以下命令时 int len=editorPane.getText().length() len的值为7473。但我试着做以下几点: editorPane.setCaretPosition(4995) 我得到了以下异常:java.lang.IllegalArgumentException:bad position:4995 我的理解是,只有当我试图设置插入符号的位置小于0或大于文本长度时,才会出现此异常。两者都不是。这怎么可能 谢谢,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
Elliott我认为问题在于文本不仅包含可渲染字符(文本中有HTML标记)。我猜setCaretPosition想要获得可见的文本位置 例如,如果
text=“123”
并调用editorPane.setCaretPosition(2)
,我认为插入符号将在“2”和“3”之间
int len = editorPane.getText().length();
提供文本和标记的长度
尝试使用:
int len = editorPane.getDocument().getLength();
这只会给出文档中文本的长度