我正在使用yfiles库,并处理一个名为 view
. 要为此对象激活鼠标滚轮滚动,我必须在registerviewlisteners函数中添加一个侦听器。不过,我也想在我的课堂上得到通知 mouseWheelMoved
鼠标移动时的功能
public class MyClass extends MyBaseClass implements MouseWheelListener {
Graph2DView view;
// .....
@Override
protected void registerViewListeners()
{
Graph2DViewMouseWheelScrollListener wheelListener = new Graph2DViewMouseWheelScrollListener();
wheelListener.addToCanvas(view);
// The two precedent instruction is equivalent to
// view.getCanvasComponent().addMouseWheelListener(this);
}
@Override
public void mouseWheelMoved(MouseWheelEvent e)
{
// some work ...
}
}
问题:
如果我注册 view
对象通过 registerViewListeners
```
@Override
protected void registerViewListeners()
{
Graph2DViewMouseWheelScrollListener wheelListener = new Graph2DViewMouseWheelScrollListener();
wheelListener.addToCanvas(view);
}
我的 `mouseWheelMoved` 不再通知函数:
@Override
public void mouseWheelMoved(MouseWheelEvent e)
{
// not called
}
1条答案
按热度按时间bybem2ql1#
您的描述听起来好像您只是删除了事件侦听器的注册。
在你示例化的地方
MyClass
,请同时添加:如果你不注册你的侦听器,它当然不会被调用。仅仅示例化它是不够的。