• category: swing folder: MinimumThumbSize title: JScrollBarのKnobの最小サイズを設定する tags: [JScrollBar, UIManager, JSlider] author: aterai pubdate: 2012-03-19T15:02:42+09:00 description: JScrollBarのKnobの最小サイズを設定します。 image: https://lh4.googleusercontent.com/-A8TRDbOQ1p4/T2bKeM8dcvI/AAAAAAAABKI/iBKMsL6eGfM/s800/MinimumThumbSize.png

概要

JScrollBarKnobの最小サイズを設定します。

サンプルコード

UIManager.put("ScrollBar.minimumThumbSize", new Dimension(32, 32));
View in GitHub: Java, Kotlin

解説

上記のサンプルでは、右のJScrollPaneで、JScrollBarKnob(Thumb)が短くなりすぎないように、最小サイズ(Horizontalの場合は幅、Verticalの場合は高さ)を設定します。

  • 注: LookAndFeelによって、UIManager.put("ScrollBar.minimumThumbSize", new Dimension(32, 32));が有効かどうかは異なる
    • 有効: BasicLookAndFeelWindowsLookAndFeel
    • 無効: MetalLookAndFeelNimbusLookAndFeel
      • 以下のように、縦スクロールバーならその幅が最小サイズになるよう上書きされているため
        // @see javax/swing/plaf/metal/MetalScrollBarUI.java
        protected Dimension getMinimumThumbSize() {
          return new Dimension(scrollBarWidth, scrollBarWidth);
        }
        


Windows 7WindowsLookAndFeelJSliderを使った場合も、つまみ?のサイズが小さすぎるが、UIManager.put("Slider.minimumHorizontalSize", new Dimension(32, 32))などとしても効果がない?

Slider.horizontalSize
Slider.verticalSize
Slider.minimumHorizontalSize
Slider.minimumVerticalSize
Slider.horizontalThumbIcon
Slider.verticalThumbIcon

参考リンク

コメント