概要

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

サンプルコード

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

解説

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

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

参考リンク

コメント