Я пытаюсь удалить и заменить прослушиватель колесика мыши на ScrolledComposite в SWT. Прокручиваемый композит имеет метод removeMouseWheelListener, однако у него нет возможности получить доступ к слушателю колесика мыши, чтобы удалить его. Я пробовал метод getListeners():
MouseWheelListener mouseWheelListener = (MouseWheelListener) scrollable.getListeners(SWT.MouseWheel)[0];
но это приводит к ошибке приведения, поэтому getListeners не должны получать прослушиватели одного и того же типа. Я попытался создать нового слушателя и удалить его из ScrolledComposite:
MouseWheelListener scroller = new MouseWheelListener() {
@Override
public void mouseScrolled(MouseEvent e) {
Point currentScroll = scrollable.getOrigin();
scrollable.setOrigin(currentScroll.x, currentScroll.y - (e.count * 5));
}
};
scrollable.removeMouseWheelListener(scroller);
Однако это не удаляет слушателя. Конечно, если бы у меня был доступ к оригинальному MouseWheelListener, который был добавлен, это не было бы проблемой, но у меня ее нет. Спасибо.