我正在尝试在SWT中的ScrolledComposite上删除并替换鼠标滚轮监听器。滚动的复合材料具有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
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句