TITLE:DefaultHighlighterの描画方法を変更する

Posted by at 2013-08-26

DefaultHighlighterの描画方法を変更する

DefaultHighlighterの描画方法を変更して、文字列が選択されている場合のハイライト表示を変更します。

DrawsLayeredHighlights.png

サンプルコード

DefaultHighlighter dh = (DefaultHighlighter)textArea.getHighlighter();
dh.setDrawsLayeredHighlights(false);
View in GitHub: Java, Kotlin

解説

  • DefaultHighlighter#setDrawsLayeredHighlights(ture)
    • デフォルト
    • 文字列の描画直前にハイライトも描画されるため、文字列の選択描画より手前にハイライトの矩形が表示される
    • 選択時の文字色が反転する場合(MetalLookAndFeel以外のLookAndFeelなど)、ハイライトの色によっては見づらくなる
  • DefaultHighlighter#setDrawsLayeredHighlights(false)
    • 文字列の選択描画より奥にハイライトが表示されるため、ハイライトの矩形は塗り潰れさて非表示となる
    • 文字列選択で、ハイライトされている箇所がわかりづらくなる
    • 改行を含む文字列を選択すると選択の描画がおかしくなる?

参考リンク

コメント