好的,前几天我发了一篇关于删除JTextArea中的Hightlighted文本的帖子:
Removing Highlight from specific word - Java
问题是,那个时候我制作了一个代码来移除Hightlights的大小...但现在我的应用程序中有很多相同大小的单词,显然应用程序运行不正确。
所以我问,有没有人知道一个库或一种方法来删除每个突出显示的字符串的内容?
答案 0 :(得分: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);
}