2013-10-10 116 views
2

好了,前幾天我做了關於向在突出顯示文本的JTextArea中刪除一個帖子:刪除Hightlight字符串內容匹配

Removing Highlight from specific word - Java

的事情是,那個時候我做了一個代碼刪除Hightlights macthing它的大小......但現在我在我的應用程序中有很多相同大小的單詞,顯然應用程序沒有正確運行。

所以我問,有沒有人知道一個庫或一種方法去除marahing每個突出顯示的字符串的內容?

回答

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); 
} 
+0

完美解決方案,夥計,就像一個魅力。非常感謝你! –

相關問題