2010-05-13 76 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获取更多信息。