import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; public class MouseWheelTest { private static int pos; public static void main(String[] args) { final Display display = new Display(); final Shell shell = new Shell(display); shell.setLayout(new FillLayout()); final Composite composite = new Composite(shell, 0); composite.addListener(SWT.MouseWheel, event -> { pos += event.count; System.out.println("event.count = " + event.count); composite.redraw(); }); composite.addListener(SWT.Paint, event -> { final Point size = composite.getSize(); final int height = event.gc.getFontMetrics().getHeight(); int i = pos; for (int y = 0; y < size.y; y += height) { event.gc.drawString(String.valueOf(i++), 0, y); } }); shell.setSize(400, 300); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose(); } }