JScrollPaneのスクロールを禁止

編集者:Terai Atsuhiro
作成日:&date
更新日:2021-08-06 (金) 19:02:43

概要

JScrollPaneのスクロールを一時的に禁止します。

http://terai.xrea.jp/swing/disablescrolling/screenshot.png

サンプルコード

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);
  }
});

解説

scrollPane.getVerticalScrollBar().setEnabledで、スクロールバーによるスクロールを無効にします。

scrollPane.setWheelScrollingEnabledで、マウスホイールによるスクロールを無効にします。

table.setEnabledでJScrollPaneに配置したコンポーネントを無効にして、フォーカスの移動などによるスクロールが起こらないようにします。

コメント