【问题标题】:Selecting specified text in an HTML formatted JEditorPane在 HTML 格式的 JEditorPane 中选择指定的文本
【发布时间】:2010-05-13 23:39:40
【问题描述】:

我在 Java JEditorPane 中显示文本,使用 HTML 来格式化文本。我还在设计一个在 JEditorPane 中查找文本的搜索功能,选择文本然后滚动到它。我的问题是创建一个算法,它将实际指定选择的开始和结束位置。

如果我只是简单地使用 myeditorpane.getText() 检索文本,然后在结果中找到搜索字符串,则会在选择错误文本的情况下计算错误的选择开始和结束位置(标签会导致计算失败)。我尝试通过在搜索文本之前执行替换所有函数 text.().replaceAll("\<.>","") 来删除 html 标签(此替换全部删除标签之间的所有文本)但仍然计算了错误的选择点(尽管我已经接近了:-))。

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

谢谢,

艾略特

【问题讨论】:

    标签: java html jeditorpane


    【解决方案1】:

    您可能希望使用底层 Document,而不是原始文本,正如 HighlightExample 中所建议的那样。

    【讨论】:

    • 这给了我所需的一切。谢谢。
    【解决方案2】:

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

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

    然后滚动你可以使用:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-24
      • 2011-06-28
      • 2012-06-29
      • 1970-01-01
      • 1970-01-01
      • 2011-01-12
      • 1970-01-01
      • 2011-12-06
      相关资源
      最近更新 更多