• title: JScrollBarのKnobの最小サイズを設定する tags: [JScrollBar, UIManager, JSlider] author: aterai pubdate: 2012-03-19T15:02:42+09:00

概要

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

参考リンク

コメント