我使用DefaultHightlighter.DefaultHightlighterPainter突出显示Java文本窗格中的文本。
我想删除所有突出显示(突出显示可能不止一个字符串),并希望它返回已删除突出显示的字符串的位置,所以显然我不能使用
pseudoCodeTextPane.getHighlighter().removeHighlight(highlight);

有人可以帮忙吗?
谢谢

最佳答案

怎么样

 Highlighter.Highlight[] highlights = pseudoCodeTextPane.getHighlighter().getHighlights();
 int[] startOffsets = new int[highlights.length];
 int[] endOffsets = new int[highlights.length];
 for (int i = 0; i < highlights.length; ++i) {
     startOffsets[i] = highlights[i].getStartOffset();
     endOffsets[i] = highlights[i].getEndOffset();
 }
 pseudoCodeTextPane.getHighlighter().removeAllHighlights();
 // now do whatever processing you want to do with the highlight locations

10-01 13:52