2013-07-12 3 views
0

Есть ли способ реализовать прослушиватель колесика мыши для ScrollPane? Я посмотрел на пару опций:ScrollPane прослушиватель колесика мыши

  • Viewport, кажется, не имеют колесо мыши слушателю
  • Играл с MouseWheelHelper Gef, но значение у изменяется только тогда, когда я нажимаю в ScrollPane, а не когда колесо мыши прокручивается. Хотя событие уволено.

Кроме того, нет вертикальной полосы прокрутки для 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 я могу контролировать скорость, с которой VIEWPORT свитков.

Единственное, что нужно проверить, является определение Event.count, что говорит:

в зависимости от типа события, количество следующих краски события, ожидающие, которые всегда могут быть равны нулю на некоторых платформах, или количество строк или страниц прокрутки с помощью колеса мыши, или количество раз мыши была нажата

Не знаю, как это будет играть на других операционных системах.

Смежные вопросы