2013-07-12 98 views
0

是否有办法实现ScrollPane鼠标滚轮侦听器?我看着几个选项:ScrollPane鼠标滚轮收听器

  • 视窗似乎并不具备的鼠标滚轮侦听
  • 演奏与全球环境基金的MouseWheelHelper但是当我滚动窗格中单击y值只改变,而不是当鼠标滚轮滚动。虽然事件正在被解雇。

另外,ScrollPane的设计没有垂直滚动条。

回答

0

好的,这里的神奇数字是org.eclipse.swt.widgets.Event.count。此数字告诉您“使用鼠标滚轮滚动的行数或页数”。结合这一点,MouseWheelHelper接口我能充分利用鼠标滚轮工作滚动:

public class MyEditPart extends TreeEditPart implements MouseWheelHelper{ 
private static final int SCROLL_OFFSET = 10; 
... 
    ... 
@Override 
public void handleMouseWheelScrolled(Event event) { 
    pane.scrollVerticalTo(pane.getViewport().getVerticalRangeModel().getValue() + (event.count * SCROLL_OFFSET)); 
} 

}

什么是整齐的是,通过改变SCROLL_OFFSET我可以控制与视口滚动速度。

的唯一的事情是检查Event.count的定义,说:

根据事件类型,以下是正在等待可能永远是零 在某些平台上 油漆事件的数量,或行或页来 滚动使用鼠标滚轮的数量,或者 鼠标已被点击

不知道这将如何发挥出其他操作系统的次数。