我正在尝试删除并替换 SWT 中 ScrolledComposite 上的鼠标滚轮监听器。滚动的复合 Material 有一个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 这不会是问题,但我没有。 谢谢。
最佳答案
getListeners
将为鼠标滚轮监听器返回类型为 TypedListener
的监听器。
TypedListener.getEventListener()
将返回 MouseWheelListener
。
关于java - 如何在 SWT 中删除鼠标滚轮监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34097082/