1

テキストを作成するために HTML を使用して Java JEditorPane にテキストを表示しています。また、JEditorPane でテキストを検索してテキストを選択し、スクロールする検索機能も設計しています。私の問題は、選択の開始位置と終了位置を実際に指定するアルゴリズムを作成することです。

myeditorpane.getText() を使用して単純にテキストを取得し、結果で検索文字列を見つけると、間違った選択の開始位置と終了位置が計算され、間違ったテキストが選択されます (タグが計算をオフにします)。テキストを検索する前に、replace all 関数 text.().replaceAll("\<.*?>","") を実行して html タグを削除しようとしました (これにより、すべてを置換すると、タグ間のすべてのテキストが削除されます)。間違った選択ポイントが計算されます (私は近づいていますが:-))。

誰もこれを行う簡単な方法を持っていますか?

ありがとう、

エリオット

4

2 に答える 2

2

このHighlightExampleDocumentで提案されているように、生のテキストではなく、基になる で作業したいでしょう。

于 2010-05-13T15:37:00.427 に答える
1

テキストの開始位置を見つける必要があります。次のようなものだと思います:

int offset = editorPane().getDocument().getText().indexof(...);

次にスクロールするには、次を使用できます。

editorPane.scrollRectToVisible( editorPane.viewToModel(offset) );

詳細については、テキストと改行を参照してください。

于 2010-05-13T15:39:40.553 に答える