java - 如何在 SWT 中删除鼠标滚轮监听器

标签 java swt scrolledcomposite

我正在尝试删除并替换 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/

相关文章:

java - 代码似乎阻止 xml 布局在 Android Studio 中显示

java - Android - 时间不更新

java - 获取特定值的数组索引

java - SWT CheckBox 按钮获取选中/未选中状态

java - NatTable 单元格中的图标

Java SWT : Composite vs Shell

java - ScrolledComposite 不通过鼠标滚轮滚动

java - 单元测试有序 SQL 查询

scroll - 如何平滑滚动SWT composite?

java - 如何填充 ScrolledComposite?