JScrollPane内に(URLからではなく)カスタムhtmlドキュメントを含むJEditorPaneと、ユーザーがエディターペインで強調表示されるテキストを入力できるようにJTextFieldがあります。テキストフィールドのkeyPressedイベントで、ドキュメントでテキストを検索し、次のように囲みます。
<a name='spot'><span style='background-color: silver'>my text</span></a>
背景を強調表示してから、新しいテキストをJEditorPaneに設定します。これはすべて正常に機能しますが、ペインをスクロールして新しく強調表示されたテキストまで表示したいと思います。したがって、エディタペインのdocumentListenerのchangedUpdateメソッドに、次を追加します。
pane.scrollToReference("spot");
この呼び出しは、BoxView.modelToView内にArrayIndexOutOfBoundsExceptionをスローします。このメソッドはテキスト内の「スポット」参照を検出しますが、ビューがまだ新しいテキストで更新されていない可能性があるため、そこでスクロールしようとすると失敗します。
ビューへの参照を取得できず、JEditorPaneのビューが完全に更新されたことを意味するリッスンするイベントが見つからないようです。何か案は?
ありがとう、
ジャレド