【问题标题】:Remove Hightlight matching String content移除高亮匹配字符串内容
【发布时间】:2013-10-18 06:44:14
【问题描述】:

好的,几天前我发了一篇关于删除 JTextArea 中高亮文本的帖子:

Removing Highlight from specific word - Java

问题是,那次我编写了一个代码来删除 Hightlights macthing 它的大小......但现在我的应用中有很多大小相同的单词,显然应用运行不正确。

所以我问,有没有人知道一个库或一种方法来删除每个突出显示的字符串的内容?

【问题讨论】:

    标签: java string libraries highlight jtextarea


    【解决方案1】:

    您可以编写一个方法来获取给定荧光笔的文本:

    private static String highlightedText(Highlight h, Document d) {
        int start = h.getStartIndex();
        int end = h.getEndIndex();
        int length = end - start;
        return d.getText(start, length);
    }
    

    那么您的 removeHighlights 方法将如下所示:

    public void removeHighlights(JTextComponent c, String toBlackOut) {
        Highlighter highlighter = c.getHighlighter();
        Highlighter.Highlight[] highlights = h.getHighlights();
        Document d = c.getDocument();
        for (Highlighter.Highlight h : highlights)
            if (highlightedText(h, d).equals(toBlackOut) && h.getPainter() instanceof TextHighLighter)
                highlighter.removeHighlight(h);
    }
    

    【讨论】:

    • 完美的解决方案老兄,就像一个魅力。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多