0

HTML形式のテキストを持つJeditorPaneがあります。次のコマンドを実行すると

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

len の値は 7473 です。しかし、次のことを試みます。

editorPane.setCaretPosition(4995);

そして、次の例外が発生します: java.lang.IllegalArgumentException: bad position: 4995

私の理解では、キャレットを設定しようとしている位置が 0 未満であるか、テキストの長さよりも大きい場合にのみ、この例外を取得する必要があります。どちらでもない。どうすればいいの。

ありがとうございました、

エリオット

4

2 に答える 2

0

問題は、テキストにレンダリング可能な文字だけが含まれていないことだと思います(テキストにHTMLタグがあります)。setCaretPosition は、表示されるテキストの位置を取得したいと思います。

たとえば、text = "<b>123</b>"を呼び出した場合editorPane.setCaretPosition(2)、キャレットは '2' と '3' の間になると思います。

于 2010-03-26T02:55:02.267 に答える