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()をオーバーライドして、シフトキーが押されている場合は、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`

参考リンク

コメント