Swing/MouseWheelScroll のバックアップ差分(No.12)
- バックアップ一覧
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- バックアップ を表示
- Swing/MouseWheelScroll へ行く。
- 1 (2012-12-13 (木) 15:57:36)
- 2 (2013-08-16 (金) 16:25:45)
- 3 (2014-11-01 (土) 00:46:09)
- 4 (2015-07-07 (火) 16:24:51)
- 5 (2017-03-26 (日) 03:33:32)
- 6 (2017-11-02 (木) 15:34:40)
- 7 (2018-01-24 (水) 17:42:09)
- 8 (2019-03-14 (木) 14:09:58)
- 9 (2019-08-23 (金) 16:09:49)
- 10 (2021-04-18 (日) 18:06:40)
- 11 (2022-02-23 (水) 21:00:15)
- 12 (2022-08-20 (土) 22:15:25)
- 追加された行はこの色です。
- 削除された行はこの色です。
---
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://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