概要

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

サンプルコード

JScrollBar vsb = new JScrollBar(Adjustable.VERTICAL) {
  @Override public Dimension getPreferredSize() {
    Dimension dim = super.getPreferredSize();
    return new Dimension(0, dim.height);
  }
};
view all

解説

  • 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

参考リンク

コメント