Swing/MouseWheel の変更点
- 追加された行はこの色です。
- 削除された行はこの色です。
- Swing/MouseWheel へ行く。
- Swing/MouseWheel の差分を削除
--- 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 --- * 概要 [#summary] `JSpinner`や`JSlider`の値をマウスホイールを使って変更します。 #download(https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTQH9EVaHI/AAAAAAAAAfE/Dv-UnuISmXM/s800/MouseWheel.png) * サンプルコード [#sourcecode] #code(link){{ 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); } 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); } }); }} * 解説 [#explanation] 上記のサンプルでは、`JSpinner`や`JSlider`に`MouseWheelListener`を設定しその領域上でマウスホイールを回転させると値を変更可能にしています。 - `MouseWheelEvent#getWheelRotation()`: -- ホイールの回転が下方向で増加(正) -- ホイールの回転が上方向で減少(負) * 参考リンク [#reference] - [https://docs.oracle.com/javase/jp/8/docs/api/java/awt/event/MouseWheelListener.html MouseWheelListener (Java Platform SE 8)] * コメント [#comment] #comment #comment