0

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

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

len 的值为 7473。但随后我尝试执行以下操作:

editorPane.setCaretPosition(4995);

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

我的理解是,如果我试图设置插入符号的位置小于 0 或大于文本长度,我应该只得到这个异常。两者都不是。怎么会这样。

谢谢,

艾略特

4

2 回答 2

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

为您提供文本和标签的长度。

尝试使用:

int len = editorPane.getDocument().getLength();

这只会给你文档中文本的长度。

于 2010-03-26T03:50:48.997 回答
0

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

例如,如果text = "<b>123</b>"你打电话给editorPane.setCaretPosition(2),我认为插入符号将在 '2' 和 '3' 之间;

于 2010-03-26T02:55:02.267 回答