Swing/DisableScrolling の変更点
- 追加された行はこの色です。
- 削除された行はこの色です。
- Swing/DisableScrolling へ行く。
- Swing/DisableScrolling の差分を削除
--- category: swing folder: DisableScrolling title: JScrollPaneのスクロールを禁止 tags: [JScrollPane, JScrollBar] author: aterai pubdate: 2005-10-03T10:00:11+09:00 description: JScrollPaneのスクロールを一時的に禁止します。 image: https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTLM6S99OI/AAAAAAAAAXM/9r2e_2JRA5g/s800/DisableScrolling.png --- * 概要 [#summary] `JScrollPane`のスクロールを一時的に禁止します。 #download(https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTLM6S99OI/AAAAAAAAAXM/9r2e_2JRA5g/s800/DisableScrolling.png) * サンプルコード [#sourcecode] #code(link){{ JCheckBox check = new JCheckBox("Disable Scrolling"); check.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent ie) { table.clearSelection(); JScrollBar bar = scroll.getVerticalScrollBar(); if (ie.getStateChange() == ItemEvent.SELECTED) { bar.setEnabled(false); scroll.setWheelScrollingEnabled(false); table.setEnabled(false); } else if (ie.getStateChange() == ItemEvent.DESELECTED) { bar.setEnabled(true); scroll.setWheelScrollingEnabled(true); table.setEnabled(true); } } }); }} * 解説 [#explanation] - `Disable Scrolling`をチェックして無効状態にする -- スクロールバーを取得し`JScrollBar#setEnabled(boolean)`メソッドを使ってこれを無効化 -- `JScrollPane#setWheelScrollingEnabled(boolean)`メソッドで、マウスホイールによるスクロールを無効化 -- スクロールバーを取得し`JScrollBar#setEnabled(boolean)`メソッドを使用してこれを無効化 -- `JScrollPane#setWheelScrollingEnabled(boolean)`メソッドでマウスホイールによるスクロールを無効化 -- `JScrollPane`に配置したコンポーネントを`setEnabled(false)`とし、フォーカスの移動などによるスクロールを無効化 - `Disable Scrolling`をチェックして無効状態にしても実行可能な操作 -- `JTableHeader`は無効にしていないのでマウスクリックでのソートやドラッグによるカラムの移動が実行可能 -- `JTable`に設定した`JPopupMenu`が表示される -- `JTable`に設定した`JToolTip`が表示される * 参考リンク [#reference] - [[JLayerで子コンポーネントへの入力を制限する>Swing/PopupMenuBlockLayer]] -- `JDK 1.7.0`で追加された`JLayer`を使用して入力を制限する方法もある - [[JLayerで指定したコンポーネントへの入力を禁止>Swing/DisableInputLayer]] * コメント [#comment] #comment #comment