我有一个JeditorPane,它有一些HTML格式的文本。当我执行以下命令时
int len = editorPane.getText()。length();
len的值是7473.但是我尝试执行以下操作:
editorPane.setCaretPosition(4995);
我得到以下异常:java.lang.IllegalArgumentException:bad position:4995
我的理解是,如果我尝试设置插入符的位置小于0或大于文本长度,我应该只得到此异常。它既不是。怎么会这样。
谢谢,
埃利奥特
答案 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'之间;