TITLE:JScrollBarが非表示でもMouseWheelでScrollする

Posted by at 2012-01-02

JScrollBarが非表示でもMouseWheelでScrollする

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

  • &jnlp;
  • &jar;
  • &zip;
MouseWheelScroll.png

サンプルコード

JScrollBar vsb = new JScrollBar(JScrollBar.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

参考リンク

コメント