37
37
import java .awt .event .AdjustmentListener ;
38
38
import java .awt .event .FocusEvent ;
39
39
import java .awt .event .FocusListener ;
40
+ import java .awt .event .MouseWheelEvent ;
41
+ import java .awt .event .MouseWheelListener ;
40
42
import java .math .BigDecimal ;
41
43
import java .math .BigInteger ;
42
44
import java .text .DecimalFormat ;
68
70
*/
69
71
@ Plugin (type = InputWidget .class )
70
72
public class SwingNumberWidget extends SwingInputWidget <Number > implements
71
- NumberWidget <JPanel >, AdjustmentListener , ChangeListener
73
+ NumberWidget <JPanel >, AdjustmentListener , ChangeListener , MouseWheelListener
72
74
{
73
75
74
76
@ Parameter
@@ -159,6 +161,17 @@ else if (source == spinner) {
159
161
}
160
162
updateModel ();
161
163
}
164
+
165
+ // -- MouseWheelListener methods --
166
+
167
+ @ Override
168
+ public void mouseWheelMoved (final MouseWheelEvent e ) {
169
+ int value = getValue ().intValue () + e .getWheelRotation ();
170
+ value = Math .min (value , this .get ().getMax ().intValue ());
171
+ value = Math .max (value , this .get ().getMin ().intValue ());
172
+ spinner .setValue (value );
173
+ syncSliders ();
174
+ }
162
175
163
176
// -- Helper methods --
164
177
@@ -180,6 +193,7 @@ private void addScrollBar(final Number min, final Number max,
180
193
setToolTip (scrollBar );
181
194
getComponent ().add (scrollBar );
182
195
scrollBar .addAdjustmentListener (this );
196
+ scrollBar .addMouseWheelListener (this );
183
197
}
184
198
185
199
private void addSlider (final Number min , final Number max ,
@@ -213,6 +227,7 @@ private void addSlider(final Number min, final Number max,
213
227
setToolTip (slider );
214
228
getComponent ().add (slider );
215
229
slider .addChangeListener (this );
230
+ slider .addMouseWheelListener (this );
216
231
}
217
232
218
233
/**
0 commit comments