在HTML格式的JEditorPane中选择指定的文本

时间:2010-05-13 13:52:51

标签: java html jeditorpane

我正在使用HTML在Java JEditorPane中显示文本以反映文本。我还在设计一个搜索函数,找到JEditorPane中的文本选择文本,然后滚动到它。我的问题是创建一个算法,它将实际指定选择的开始和结束位置。

如果我只是使用myeditorpane.getText()检索文本,然后在结果中找到搜索字符串,则会选择错误的选择开始和结束位置,并选择错误的文本(标记将关闭计算)。我尝试通过执行替换所有函数文本来删除html标记。()。replaceAll(“\<。*?>”,“”)在搜索文本之前(此替换全部删除标记之间的所有文本)但仍然计算错误的选择点(虽然我越来越近了:-))。

有没有人有一个简单的方法来做到这一点?

谢谢,

埃利奥特

2 个答案:

答案 0 :(得分:2)

您可能希望使用基础Document而不是原始文本,如HighlightExample中所述。

答案 1 :(得分:1)

您需要找到文本的起始位置。我猜是这样的:

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

然后滚动你可以使用:

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

阅读Text and New Lines了解更多信息。