Java по умолчанию Highlighter - PullRequest
       3

Java по умолчанию Highlighter

2 голосов
/ 31 января 2012

Я использую DefaultHightlighter.DefaultHightlighterPainter, чтобы выделить текст в текстовой панели Java. Я хочу удалить все выделения (может быть выделено более одной строки) и хочу, чтобы он возвращал места строк, где выделение было удалено, поэтому, очевидно, я не могу использовать pseudoCodeTextPane.getHighlighter().removeHighlight(highlight);

Кто-нибудь может помочь? Спасибо

Ответы [ 2 ]

3 голосов
/ 31 января 2012

Как насчет чего-то вроде

 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
1 голос
/ 31 января 2012

Если вы удалите все выделения (я полагаю, с removeAllHighlights), вы можете getHighlights до этого и использовать полученную там информацию.

...