• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:DefaultHighlighterの描画方法を変更する
#navi(../)
#tags(DefaultHighlighter, JTextArea, JTextComponent)
RIGHT:Posted by &author(aterai); at 2013-08-26
* DefaultHighlighterの描画方法を変更する [#i974e690]
``DefaultHighlighter``の描画方法を変更して、文字列が選択されている場合のハイライト表示を変更します。
`DefaultHighlighter`の描画方法を変更して、文字列が選択されている場合のハイライト表示を変更します。

- &jnlp;
- &jar;
- &zip;

#download
#ref(https://lh6.googleusercontent.com/-yXndYI0LTyA/UhoR8XLek3I/AAAAAAAABy0/BpEfTjjAGwU/s800/DrawsLayeredHighlights.png)

** サンプルコード [#q03cab3a]
#code(link){{
DefaultHighlighter dh = (DefaultHighlighter)textArea.getHighlighter();
dh.setDrawsLayeredHighlights(false);
}}

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

** 参考リンク [#x2dde67e]
- [http://docs.oracle.com/javase/jp/7/api/javax/swing/text/DefaultHighlighter.html#setDrawsLayeredHighlights(boolean) DefaultHighlighter#setDrawsLayeredHighlights(boolean) (Java Platform SE 7 )]

** コメント [#p34df751]
#comment