概要

JScrollBarが非表示の場合のMouseWheelによるScrollをテストします。

サンプルコード

JScrollBar vsb = new JScrollBar(Adjustable.VERTICAL) {
  @Override public Dimension getPreferredSize() {
    Dimension d = super.getPreferredSize();
    d.height = 0;
    return d;
  }
};
View in GitHub: Java, Kotlin

解説

  • PreferredSize: 0, shift pressed: Horizontal WheelScrolling
    • ScrollBarPolicyはそれぞれALWAYSで常に表示
      • VerticalScrollBarPolicy: VERTICAL_SCROLLBAR_ALWAYS
      • HorizontalScrollBarPolicy: HORIZONTAL_SCROLLBAR_ALWAYS
    • JScrollBar#getPreferredSize()をオーバーライドして幅または高さを0にして返す
    • 垂直スクロールバーのJScrollBar#isVisible()をオーバーライドしてShiftキーが押されている場合はfalseを返す
      • 垂直スクロールバーが非表示で水平スクロールバーが表示されている場合、MouseWheelで水平スクロール可能
  • SCROLLBAR_ALWAYS
    • ScrollBarPolicyはそれぞれALWAYSで常に表示
      • VerticalScrollBarPolicy: VERTICAL_SCROLLBAR_ALWAYS
      • HorizontalScrollBarPolicy: HORIZONTAL_SCROLLBAR_ALWAYS
  • SCROLLBAR_NEVER
    • ScrollBarPolicyはそれぞれNEVERで常に非表示
      • VerticalScrollBarPolicy: VERTICAL_SCROLLBAR_NEVER
      • HorizontalScrollBarPolicy: HORIZONTAL_SCROLLBAR_NEVER

参考リンク

コメント