2010-05-13 80 views
1

我在使用HTML來形成文本的Java JEditorPane中顯示文本。我還設計了一個搜索功能,可以在JEditorPane中查找文本,然後選擇文本並滾動到文本中。我的問題是創建一個算法,它將實際指定選擇的開始和結束位置。在HTML格式的JEditorPane中選擇指定的文本

如果我只是使用myeditorpane.getText()檢索文本,然後在結果中找到搜索字符串,則會選擇錯誤的選擇開始和結束位置,並選擇錯誤的文本(標記將關閉計算) 。在搜索文本之前執行替換所有功能文本()。replaceAll(「\ <。*?>」,「」)以刪除html標籤(此替換全部刪除標籤之間的所有文本),但仍然計算錯誤的選擇點(儘管我正在接近:-))。

有沒有人有一個簡單的方法來做到這一點?

感謝,

埃利奧特

回答

1

您需要找到文本的起始位置。我想是這樣的:

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

然後滾動,你可以使用:

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

閱讀上Text and New Lines獲取更多信息。