Highlighterで文字列を強調表示

編集者:Terai Atsuhiro
作成日:2005-12-05
更新日:2023-12-31 (日) 19:27:47

概要

Highlighterを使ってテキスト中の文字列を強調表示します。

http://terai.xrea.jp/swing/highlighter/screenshot.png

サンプルコード

public void setHighlight(JTextComponent jtc, String pattern) {
  removeHighlights(jtc);
  try{
    Highlighter hilite = jtc.getHighlighter();
    Document doc = jtc.getDocument();
    String text = doc.getText(0, doc.getLength());
    int pos = 0;
    while((pos = text.indexOf(pattern, pos)) >= 0) {
      hilite.addHighlight(pos, pos+pattern.length(), highlightPainter);
      pos += pattern.length();
    }
  }catch(BadLocationException e) {}
}

解説

テキストコンポーネントからHighlighterを取得し、Highlighter#addHighlightメソッドで検索した文字列を追加していきます。

上記のサンプルでは、ハイライトの色をDefaultHighlighter.DefaultHighlightPainterを使って指定しています。

参考リンク

コメント