Jason
Jason

Reputation: 12283

Using the mouse wheel with JSpinner in Java

I would like to use my mouse wheel to increment and decrement a JSpinner. Is this possible?

Upvotes: 1

Views: 2114

Answers (2)

Jigar Joshi
Jigar Joshi

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

Jason
Jason

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

Related Questions