如果我向addMouseListener注册了一个组件,然后将其传递给新的MouseAdapter由于我必须使用addMouseMotionListener,所以不会生成motions事件。

相反,如果我使用addMouseMotionListenerMouseAdapter,则无法使用点击事件ecc。

所以我真的不明白为什么MouseAdapter也实现了MouseMotionListenerMouseWheelListener ...

它只会造成混乱!

最佳答案

因为通过这种方式,您可以完全按照自己的意愿做:在同一个侦听器类中侦听运动和单击事件:

MouseAdapter adapter = new MouseAdapter ({
    // Override here all the methods you need
});

widget.addMouseListener(adapter);
widget.addMouseMotionListener(adapter);

这样,您的适配器将同时收到Motion和click事件的通知。

09-25 20:45