MouseWheelを使った値の増減
Total: 12378
, Today: 1
, Yesterday: 2
Posted by aterai at
Last-modified:
概要
JSpinner
やJSlider
の値をマウスホイールを使って変更します。
Screenshot
Advertisement
サンプルコード
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解説
上記のサンプルでは、JSpinner
やJSlider
にMouseWheelListener
を設定しその領域上でマウスホイールを回転させると値を変更可能にしています。
MouseWheelEvent#getWheelRotation()
:- ホイールの回転が下方向で増加(正)
- ホイールの回転が上方向で減少(負)