Swing/RemoveAllHighlights のバックアップ(No.2)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/RemoveAllHighlights へ行く。
- 1 (2021-12-06 (月) 00:41:48)
- 2 (2024-11-20 (水) 11:19:43)
- category: swing folder: RemoveAllHighlights title: JTextAreaに設定したHighlightをすべて削除する tags: [JTextArea, JTextComoponent, Highlighter, Caret] author: aterai pubdate: 2021-12-06T00:41:02+09:00 description: JTextAreaに設定したHighlightをすべて削除、または選択ハイライトを除いてすべて削除します。 image: https://drive.google.com/uc?id=13EoqnIUuuaRLWAFig-StZjIE9KsRyQaU
概要
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で検索結果のハイライト表示と文字色変更を同時に行う