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

时间:2010-03-26 02:48:00

标签: java caret jeditorpane

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

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

len的值是7473.但是我尝试执行以下操作:

editorPane.setCaretPosition(4995);

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

我的理解是,如果我尝试设置插入符的位置小于0或大于文本长度,我应该只得到此异常。它既不是。怎么会这样。

谢谢,

埃利奥特

2 个答案:

答案 0 :(得分:1)

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

给出文本和标签的长度。

尝试使用:

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

只会给出文档中文本的长度。

答案 1 :(得分:0)

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

例如,如果text = "<b>123</b>"并且您致电editorPane.setCaretPosition(2),我认为插入符号位于'2'和'3'之间;