MouseWheelを使った値の増減

編集者:Terai Atsuhiro
作成日:2004-03-08
更新日:2021-11-26 (金) 05:14:30

概要

JSpinnerやJSliderの値をマウスホイールを使って変更します。

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

サンプルコード

spinner.addMouseWheelListener(new MouseWheelListener() {
  public void mouseWheelMoved(MouseWheelEvent e) {
    JSpinner source = (JSpinner)e.getSource();
    SpinnerNumberModel model = (SpinnerNumberModel)source.getModel();
    Integer oldValue = (Integer)source.getValue();
    int intValue = oldValue.intValue()
                  -e.getWheelRotation()*model.getStepSize().intValue();
    Integer newValue = new Integer(intValue);
    if(model.getMaximum().compareTo(newValue)>=0 &&
       model.getMinimum().compareTo(newValue)<=0) {
      source.setValue(newValue);
    }
  }
});

解説

上記のサンプルでは、各コンポーネント上でマウスホイールを回転させると値が変化します。e.getWheelRotation()の値は、ホイールの回転が下方向の場合は増加、上方向は減少になります。

コメント