Как задано здесь Scrolling part of the canvas Я не могу слушать события мыши на полосах прокрутки. После расследования я обнаружил, что это связано с ошибкой в GTK. См. Здесь https://bugs.eclipse.org/bugs/show_bug.cgi?id=51995. Он исправлен, но я не знаю, как его решить на моей машине (Ubuntu 12.04). Может ли кто-нибудь помочь мне в этом отношении?SWT Прокрутка событий на Linux
ответ
Вы можете обнаружить события мыши на полосе прокрутки или слайдере, как указано ниже.
Установите значения приращения страницы и значения приращения для ползунка или полосы прокрутки.
sbr.setPageIncrement (100); // Полоса прокрутки будет перемещена на 100 пикселов назад или вперед при нажатии на область между большим и указателем стрелки влево или между окном большой палец и стрелка вправо.
sbr.setIncrement (10); // Полоса прокрутки будет перемещена на 10 пикселей назад или вперед, когда нажата на кнопку со стрелкой влево или вправо.
Добавьте приведенный ниже код в полосе прокрутки или выбора бегунок слушателя
sbr.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event event) {
int hSelection = sbr.getSelection();
if (hSelection - prevHselection == sbr.getIncrement()) {
System.out.println("clicked right arrow button");
} else if (hSelection - prevHselection == -sbr.getIncrement()) {
System.out.println("clicked left arrow button");
} else if (hSelection - prevHselection == sbr.getPageIncrement()) {
System.out.println("clicked on area between thumb and right arrow button");
} else if (hSelection - prevHselection == -sbr.getPageIncrement())
System.out.println("clicked on area between thumb and left arrow button");
} else if(hSelection - prevHselection > 0){
System.out.println("Thumb is dragged forward");
} else if(hSelection - prevHselection < 0){
System.out.println("Thumb is dragged backward");
}
prevHselection = hSelection; //create field prevSelection
}
}
Примечание ПОСЛЕ клиента изменить размер страницы обновления приращения и приращения значений.
Либо получить источник, применить патч или построить из git через ваше хранилище пакетов распределения (что в вашем случае будет боль, debian упаковка требует, чтобы вы прыгали через пучок циклов) или найти PPA (читайте: найти кого-нибудь еще, кто уже сделал эту работу) и установить его (сделайте это на свой страх и риск)
- 1. Прокрутка SWT-таблицы программно
- 2. Прокрутка SWT scrollBar
- 3. MDI в SWT на Linux?
- 4. SWT Секционированный стол и прокрутка
- 5. SWT/JFace Scrollview не прокрутка
- 6. Как остановить распространение ключевых событий на swt
- 7. jquery и прокрутка событий
- 8. Прокрутка событий в TouchGridPanel
- 9. Прокрутка и касание событий на iOS5
- 10. планировщик Mysql событий на Linux
- 11. SWT создать отклоненный виджет (прокрутка композитного)
- 12. SWT окно работоспособной на Linux, но не на Mac
- 13. SWT: MenuItem не может установитьImage в Linux
- 14. Запуск Java Eclipse SWT (64-разрядный Linux)
- 15. Eclipse SWT Browser crash (Linux 64Bit)
- 16. SWT ExpandListener выполняет до свертывания в Linux
- 17. Linux Lubuntu Eclipse Checkstyle SWT Ошибка
- 18. SWT: проблемы с нажатием кнопки после использования setEnabled() на Linux
- 19. Linux SWT Browser JavaScript.window.close() метод не работает
- 20. syslog Журнал событий/генератор событий linux
- 21. SWT и Webstart на Mac
- 22. Прокрутка не работает с Canvas & GC в Java SWT
- 23. Прокрутка по методу событий, выполняемая дважды, C#
- 24. C++ Win/Linux поток событий
- 25. Прокрутка события на iphone
- 26. Перетаскивание на SWT-сетке
- 27. Поддержка Jfreeshart на SWT?
- 28. SWT на разных системах
- 29. SWT: как определить мои собственные типы событий и прослушиватели
- 30. неограниченная прокрутка из командной строки linux