• category: swing folder: MouseWheel title: MouseWheelを使った値の増減 tags: [MouseWheelListener, JSpinner, JSlider] author: aterai pubdate: 2004-03-08T08:53:34+09:00 description: JSpinnerやJSliderの値をマウスホイールを使って変更します。 image: https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTQH9EVaHI/AAAAAAAAAfE/Dv-UnuISmXM/s800/MouseWheel.png

概要

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

サンプルコード

spinner.addMouseWheelListener(new MouseWheelListener() {
  @Override public void mouseWheelMoved(MouseWheelEvent e) {
    JSpinner source = (JSpinner) e.getComponent();
    SpinnerNumberModel model = (SpinnerNumberModel) source.getModel();
    Integer oldValue = (Integer) source.getValue();
    int intValue = oldValue.intValue()
                   - e.getWheelRotation() * model.getStepSize().intValue();
    int max = ((Integer) model.getMaximum()).intValue(); //1000
    int min = ((Integer) model.getMinimum()).intValue(); //0
    if (min <= intValue && intValue <= max) {
      source.setValue(intValue);
    }
  }
});
View in GitHub: Java, Kotlin

解説

上記のサンプルでは、JSpinnerJSliderMouseWheelListenerを設定しその領域上でマウスホイールを回転させると値を変更可能にしています。

  • MouseWheelEvent#getWheelRotation():
    • ホイールの回転が下方向で増加(正)
    • ホイールの回転が上方向で減少(負)

参考リンク

コメント