我正在使用HTML在Java JEditorPane中显示文本以反映文本。我还在设计一个搜索函数,找到JEditorPane中的文本选择文本,然后滚动到它。我的问题是创建一个算法,它将实际指定选择的开始和结束位置。
如果我只是使用myeditorpane.getText()检索文本,然后在结果中找到搜索字符串,则会选择错误的选择开始和结束位置,并选择错误的文本(标记将关闭计算)。我尝试通过执行替换所有函数文本来删除html标记。()。replaceAll(“\<。*?>”,“”)在搜索文本之前(此替换全部删除标记之间的所有文本)但仍然计算错误的选择点(虽然我越来越近了:-))。
有没有人有一个简单的方法来做到这一点?
谢谢,
埃利奥特
答案 0 :(得分:2)
您可能希望使用基础Document
而不是原始文本,如HighlightExample中所述。
答案 1 :(得分:1)
您需要找到文本的起始位置。我猜是这样的:
int offset = editorPane().getDocument().getText().indexof(...);
然后滚动你可以使用:
editorPane.scrollRectToVisible( editorPane.viewToModel(offset) );
阅读Text and New Lines了解更多信息。