Swing/DisableScrolling のバックアップの現在との差分(No.11)
- バックアップ一覧
- 差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- バックアップ を表示
- Swing/DisableScrolling へ行く。
- 1 (2005-10-05 (水) 11:30:25)
- 2 (2005-12-16 (金) 17:18:38)
- 3 (2006-02-27 (月) 15:47:47)
- 4 (2006-04-12 (水) 19:41:03)
- 5 (2007-03-10 (土) 01:35:10)
- 6 (2007-10-03 (水) 23:38:10)
- 7 (2011-11-14 (月) 18:17:33)
- 8 (2011-11-15 (火) 18:00:20)
- 9 (2011-11-26 (土) 12:35:32)
- 10 (2011-11-28 (月) 15:42:39)
- 11 (2012-01-10 (火) 14:26:43)
- 12 (2013-03-22 (金) 11:56:55)
- 13 (2013-04-10 (水) 16:18:08)
- 14 (2014-03-16 (日) 22:49:46)
- 15 (2014-09-17 (水) 13:13:19)
- 16 (2014-10-21 (火) 01:58:28)
- 17 (2015-11-13 (金) 00:51:18)
- 18 (2016-09-22 (木) 21:20:17)
- 19 (2017-03-23 (木) 16:42:58)
- 20 (2017-03-28 (火) 19:27:51)
- 21 (2018-02-15 (木) 17:28:06)
- 22 (2020-02-20 (木) 15:07:14)
- 23 (2021-08-06 (金) 19:02:43)
- 追加された行はこの色です。
- 削除された行はこの色です。
TITLE:JScrollPaneのスクロールを禁止 #navi(../) RIGHT:Posted by [[aterai]] at 2005-10-03 *JScrollPaneのスクロールを禁止 [#idbca416] JScrollPaneのスクロールを一時的に禁止します。 --- 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`のスクロールを一時的に禁止します。 -&jnlp; -&jar; -&zip; #download(https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTLM6S99OI/AAAAAAAAAXM/9r2e_2JRA5g/s800/DisableScrolling.png) //#screenshot #ref(http://lh5.ggpht.com/_9Z4BYR88imo/TQTLM6S99OI/AAAAAAAAAXM/9r2e_2JRA5g/s800/DisableScrolling.png) **サンプルコード [#id62505b] #code{{ JCheckBox b = new JCheckBox("スクロールを禁止する"); b.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent ie) { JCheckBox box = (JCheckBox)ie.getSource(); boolean flag = !box.isSelected(); JScrollBar bar = scrollPane.getVerticalScrollBar(); bar.setEnabled(flag); scrollPane.setWheelScrollingEnabled(flag); table.setEnabled(flag); * サンプルコード [#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); } } }); }} **解説 [#m5e6b6de] - このサンプルでは、"Disable Scrolling"をチェックして無効状態にすると -- スクロールバーを取得し、JScrollBar#setEnabled(boolean)メソッドを使って、これを無効にします。 -- JScrollPane#setWheelScrollingEnabled(boolean)メソッドで、マウスホイールによるスクロールを無効にします。 -- JScrollPaneに配置したコンポーネントをsetEnabled(false)とし、フォーカスの移動などによるスクロールを無効にします。 * 解説 [#explanation] - `Disable Scrolling`をチェックして無効状態にする -- スクロールバーを取得し`JScrollBar#setEnabled(boolean)`メソッドを使用してこれを無効化 -- `JScrollPane#setWheelScrollingEnabled(boolean)`メソッドでマウスホイールによるスクロールを無効化 -- `JScrollPane`に配置したコンポーネントを`setEnabled(false)`とし、フォーカスの移動などによるスクロールを無効化 - `Disable Scrolling`をチェックして無効状態にしても実行可能な操作 -- `JTableHeader`は無効にしていないのでマウスクリックでのソートやドラッグによるカラムの移動が実行可能 -- `JTable`に設定した`JPopupMenu`が表示される -- `JTable`に設定した`JToolTip`が表示される ---- - このサンプルでは、"Disable Scrolling"をチェックして無効状態にしても -- JTableHeaderは無効にしていないので、クリックしてソートや、カラムの移動を行うことができます。 -- JScrollPaneに設定したJPopupMenuを表示することができます。 -- JTableに設定したJToolTipを表示することができます。 * 参考リンク [#reference] - [[JLayerで子コンポーネントへの入力を制限する>Swing/PopupMenuBlockLayer]] -- `JDK 1.7.0`で追加された`JLayer`を使用して入力を制限する方法もある - [[JLayerで指定したコンポーネントへの入力を禁止>Swing/DisableInputLayer]] ---- JDK 1.7.0 で追加されたJLayerを使用して、以下のように入力を禁止する方法もあります。 -[[JLayerで子コンポーネントへの入力を制限する>Swing/PopupMenuBlockLayer]] -[[JLayerで指定したコンポーネントへの入力を禁止>Swing/DisableInputLayer]] //**参考リンク **コメント [#v37d76ac] * コメント [#comment] #comment #comment