Swing/MouseWheelScroll の変更点
- 追加された行はこの色です。
- 削除された行はこの色です。
- Swing/MouseWheelScroll へ行く。
- Swing/MouseWheelScroll の差分を削除
--- 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 --- * 概要 [#summary] `JScrollBar`が非表示の場合の`MouseWheel`による`Scroll`をテストします。 #download(https://lh6.googleusercontent.com/-65-zGNk3eWU/TwFLJU_DP4I/AAAAAAAABHg/mEXoePs30sk/s800/MouseWheelScroll.png) * サンプルコード [#sourcecode] #code(link){{ JScrollBar vsb = new JScrollBar(Adjustable.VERTICAL) { @Override public Dimension getPreferredSize() { Dimension d = super.getPreferredSize(); d.height = 0; return d; } }; }} * 解説 [#explanation] - `PreferredSize: 0, shift pressed: Horizontal WheelScrolling` -- `ScrollBarPolicy`はそれぞれ`ALWAYS`で常に表示 --- `VerticalScrollBarPolicy`: `VERTICAL_SCROLLBAR_ALWAYS` --- `HorizontalScrollBarPolicy`: `HORIZONTAL_SCROLLBAR_ALWAYS` -- `JScrollBar#getPreferredSize()`をオーバーライドして幅または高さを`0`にして返す -- 垂直スクロールバーの`JScrollBar#isVisible()`をオーバーライドしてKBD{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` * 参考リンク [#reference] - [https://bugs.openjdk.java.net/browse/JDK-6911375 JDK-6911375 mouseWheel has no effect without vertical scrollbar - Java Bug System] - [https://bugs.openjdk.org/browse/JDK-6911375 JDK-6911375 mouseWheel has no effect without vertical scrollbar - Java Bug System] -- [https://github.com/openjdk/jdk/pull/7585/files 6911375: mouseWheel has no effect without vertical scrollbar by prsadhuk · Pull Request #7585 · openjdk/jdk]で垂直スクロールバーが非表示でもホイールスクロール可能になるよう修正される予定 * コメント [#comment] #comment #comment