JTextAreaに設定したHighlightをすべて削除する
Total: 1197
, Today: 2
, Yesterday: 1
Posted by aterai at
Last-modified:
概要
JTextArea
に設定したHighlight
をすべて削除、または選択ハイライトを除いてすべて削除します。
Screenshot
Advertisement
サンプルコード
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, Kotlin解説
removeAllHighlights
JTextComponent#getHighlighter()#removeAllHighlights()
ですべてのハイライトを削除- マウスやカーソルキーで文字列選択した場合のハイライトも削除される
removeWordHighlights
- 文字列選択のハイライト以外のハイライトを削除
- このサンプルではキャレット下の単語で全テキストを検索して一致する単語を黄色の
HighlightPainter
でハイライトしているので、このペインターを使用しているHighlighter.Highlight
をHighlighter#getHighlights()
から検索しHighlighter#removeHighlight(...)
で削除
参考リンク
- Highlighter#removeAllHighlights() (Java Platform SE 8)
- Highlighter##removeHighlight(Object) (Java Platform SE 8)
- JTextPaneで検索結果のハイライト表示と文字色変更を同時に行う