概要

JSliderのつまみの形状を目盛り表示ありの場合と同じになるよう変更します。

サンプルコード

slider.putClientProperty("Slider.paintThumbArrowShape", Boolean.TRUE);
View in GitHub: Java, Kotlin

解説

上記のサンプルでは、slider.putClientProperty("Slider.paintThumbArrowShape", Boolean.TRUE)を使用して、つまみの形状を目盛り表示ありの場合に使用する矢印型に変更しています。

  • この設定で矢印型に変化するかどうかはLookAndFeelに依存する
    • NimbusLookAndFeelでは目盛り表示ありの場合でも矢印型にはならないが、Slider.paintThumbArrowShapeで三角形になる
  • WindowsLookAndFeelでつまみが小さすぎる場合に使用可
    • slider.putClientProperty("Slider.minimumHorizontalSize", new Dimension(30, 30))を設定してもサイズは変化しない
  • slider.setPaintTicks(true)だけ使用する場合と異なり、目盛り表示領域の余白がない

  • Windows 10 + JDK 1.8.0_121 + WindowsLookAndFeelでは縦スライダーのつまみが横スライダーのものと同じになるが、これが仕様かどうかは不明


  • NimbusLookAndFeelを設定した縦JSliderJSlider#putClientProperty("Slider.paintThumbArrowShape", Boolean.TRUE)を適用して三角形のつまみを使用する場合、ComponentOrientation.RIGHT_TO_LEFTを設定してもその三角形の頂点の向きは目盛り側に向くよう変化しない

参考リンク

コメント