JTextAreaに設定したHighlightをすべて削除する
Total: 1713, Today: 1, Yesterday: 0
Posted by aterai at
Last-modified:
Summary
JTextAreaに設定したHighlightをすべて削除、または選択ハイライトを除いてすべて削除します。
Screenshot

Advertisement
Source Code Examples
textArea.getHighlighter().removeAllHighlights();
// ...
public static void removeWordHighlights(JTextComponent tc) {
Highlighter highlighter = tc.getHighlighter();
for (Highlighter.Highlight hh : highlighter.getHighlights()) {
if (hh.getPainter().equals(HIGHLIGHT)) {
highlighter.removeHighlight(hh);
}
}
}
View in GitHub: Java, KotlinDescription
removeAllHighlightsJTextComponent#getHighlighter()#removeAllHighlights()ですべてのハイライトを削除- マウスやカーソルキーで文字列選択した場合のハイライトも削除される
removeWordHighlights- 文字列選択のハイライト以外のハイライトを削除
- このサンプルではキャレット下の単語で全テキストを検索して一致する単語を黄色の
HighlightPainterでハイライトしているので、このペインターを使用しているHighlighter.HighlightをHighlighter#getHighlights()から検索しHighlighter#removeHighlight(...)で削除
Reference
- Highlighter#removeAllHighlights() (Java Platform SE 8)
- Highlighter##removeHighlight(Object) (Java Platform SE 8)
- JTextPaneで検索結果のハイライト表示と文字色変更を同時に行う