• category: swing folder: MouseWheelScroll title: JScrollBarが非表示でもMouseWheelでScrollする tags: [JScrollBar, JScrollPane, MouseWheelListener] author: aterai pubdate: 2012-01-02T15:22:30+09:00 description: JScrollBarが非表示の場合のMouseWheelによるScrollをテストします。 image: https://lh6.googleusercontent.com/-65-zGNk3eWU/TwFLJU_DP4I/AAAAAAAABHg/mEXoePs30sk/s800/MouseWheelScroll.png

概要

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

サンプルコード

JScrollBar vsb = new JScrollBar(Adjustable.VERTICAL) {
  @Override public Dimension getPreferredSize() {
    Dimension dim = super.getPreferredSize();
    return new Dimension(0, dim.height);
  }
};
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

参考リンク

コメント