Swing/DrawsLayeredHighlights のバックアップの現在との差分(No.9)
- category: swing folder: DrawsLayeredHighlights title: DefaultHighlighterの描画方法を変更する tags: [DefaultHighlighter, JTextArea, JTextComponent] author: aterai pubdate: 2013-08-26T00:05:12+09:00 description: DefaultHighlighterの描画方法を変更して、文字列が選択されている場合のハイライト表示を変更します。 image:
概要
DefaultHighlighter
の描画方法を変更して、文字列が選択されている場合のハイライト表示を変更します。
Screenshot
Advertisement
サンプルコード
DefaultHighlighter dh = (DefaultHighlighter) textArea.getHighlighter();
dh.setDrawsLayeredHighlights(false);
View in GitHub: Java, Kotlin解説
DefaultHighlighter#setDrawsLayeredHighlights(true)
- デフォルト
- 文字列の描画直前にハイライトも描画されるため、文字列の選択描画より手前にハイライトの矩形が表示される
- 選択時の文字色が反転する場合(
MetalLookAndFeel
以外のLookAndFeel
など)、ハイライトの色によっては見づらくなる - 文字列の描画直前にハイライトも描画されるため文字列の選択描画より手前にハイライトの矩形が表示される
-
MetalLookAndFeel
以外のLookAndFeel
などで選択時の文字色が反転する場合ハイライトの色によっては見づらくなる
DefaultHighlighter#setDrawsLayeredHighlights(false)
- 選択されている文字列の背景だけではなく、テキストエリアの右端や、範囲内の空行も選択色で塗り潰される
- 文字列の選択描画より奥にハイライトが表示されるため、ハイライトの矩形は塗り潰されて非表示となる
- 文字列選択で、ハイライトされている箇所がわかりづらくなる
-
HTMLEditorKit
と合わせて使用する場合、改行を含む文字列を選択すると選択の描画がおかしくなる? - 選択されている文字列の背景だけではなくテキストエリアの右端や範囲内の空行も選択色で塗り潰される
- 文字列の選択描画より奥にハイライトが表示されるためハイライトの矩形は塗り潰されて非表示となる
- 文字列を選択するとハイライトされている箇所が見づらくなる
-
HTMLEditorKit
と合わせて使用すると、改行を含む文字列を選択すると選択状態の描画がおかしくなる?場合がある