Swing/DrawsLayeredHighlights のバックアップ(No.10)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/DrawsLayeredHighlights へ行く。
- 1 (2013-09-09 (月) 15:00:19)
- 2 (2014-05-22 (木) 14:28:32)
- 3 (2014-05-31 (土) 21:43:29)
- 4 (2014-06-02 (月) 17:31:17)
- 5 (2014-11-05 (水) 05:01:14)
- 6 (2015-12-03 (木) 18:06:53)
- 7 (2015-12-21 (月) 00:39:50)
- 8 (2017-06-13 (火) 15:38:29)
- 9 (2018-06-12 (火) 09:57:45)
- 10 (2020-05-30 (土) 01:11:29)
- 11 (2021-11-14 (日) 03:51:56)
- 12 (2024-03-02 (土) 18:54:22)
- 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
など)、ハイライトの色によっては見づらくなる
DefaultHighlighter#setDrawsLayeredHighlights(false)
- 選択されている文字列の背景だけではなく、テキストエリアの右端や、範囲内の空行も選択色で塗り潰される
- 文字列の選択描画より奥にハイライトが表示されるため、ハイライトの矩形は塗り潰されて非表示となる
- 文字列選択で、ハイライトされている箇所がわかりづらくなる
HTMLEditorKit
と合わせて使用する場合、改行を含む文字列を選択すると選択状態の描画がおかしくなる?