概要

JEditorPaneで選択した文字のレンダリングに使用する色をnullにして選択文字色の変更を無効化します。

サンプルコード

HTMLEditorKit htmlEditorKit = new HTMLEditorKit();
htmlEditorKit.setStyleSheet(styleSheet);
editor.setEditorKit(htmlEditorKit);
editor.setEditable(false);
editor.setSelectedTextColor(null);
editor.setSelectionColor(new Color(0x64_88_AA_AA, true));
editor.setBackground(new Color(0xEE_EE_EE));
View in GitHub: Java, Kotlin

解説

  • 上:
    • 選択した文字をレンダリングする色はLookAndFeelでのデフォルト
      • たとえばWindowsLookAndFeelの場合選択文字色はColor.WHITEになる
  • 下:
    • 選択した文字のレンダリングをJTextComponent#setSelectedTextColor(null)で無効化してCSSで設定した文字色を変更しないよう設定
    • JTextComponent#setSelectedTextColor(Color) (Java Platform SE 8)のドキュメントには「色にnullを設定することは、Color.blackと同じです。」と記述されているが、実際のJEditorPanenullを設定すると選択文字色の変更は無効になる

参考リンク

コメント