Reputation: 12283
I would like to use my mouse wheel to increment and decrement a JSpinner. Is this possible?
Upvotes: 1
Views: 2114
Reputation: 240870
import javax.swing.*;
import java.awt.event.*;
public class TestSpinner extends JFrame implements MouseWheelListener
{
public TestSpinner()
{
setSize( 100, 50 );
spinner = new JSpinner();
spinner.addMouseWheelListener( this );
getContentPane().add( spinner, "Center" );
}
public void mouseWheelMoved( MouseWheelEvent e )
{
spinner.setValue(
new Integer( ((Integer)spinner.getValue()).intValue() - e.getWheelRotation() ) );
}
public static void main( String [] args )
{
TestSpinner t = new TestSpinner();
t.setVisible( true );
}
private JSpinner spinner;
}
Source: https://www.devx.com/tip-bank/14880/
Upvotes: 4
Reputation: 12283
spinner.addMouseWheelListener(new MouseWheelListener() {
public void mouseWheelMoved(MouseWheelEvent mwe) {
if (mwe.getScrollType() != MouseWheelEvent.WHEEL_UNIT_SCROLL) {
return;
}
double value = (Double)spinner.getValue();
value -= mwe.getUnitsToScroll();
spinner.setValue(value);
}
});
This hack worked for me.
Upvotes: 0