概要

MetalLookAndFeelを適用したJSliderで現在値を示す領域のトラック背景色を変更します。

スクリーンショット

Swing/SliderAltTrackColor.png

サンプルコード

UIManager.put("Slider.altTrackColor", Color.RED);
JSlider slider1 = new JSlider();
slider1.setInverted(true);

JSlider slider2 = new JSlider();
slider2.putClientProperty("JSlider.isFilled", false);
View in GitHub: Java, Kotlin

解説

  • Slider.altTrackColor: RED
    • UIManager.put("Slider.altTrackColor", Color.RED)で現在地までのトラック背景色を変更
    • この設定はMetalLookAndFeelでのみ有効
  • Slider.altTrackColor: RED + Slider.setInverted: true
    • Slider.altTrackColorの設定はJSlider#setInverted(true)で表示する値の範囲を通常とは逆にしている場合にも対応している
  • JSlider.isFilled: false
    • JSlider#putClientProperty("JSlider.isFilled", false)で現在地までのトラック背景色を描画しないよう設定しているので、Slider.altTrackColorの設定は無効
      • JSlider#putClientProperty("JSlider.isFilled", false)を設定していても、現在地までのトラックのフチ色は変化する
    • UIManager.put("JSlider.isFilled", false)を設定しても参照されないので無効

参考リンク

コメント