我创建了以下小程序-->
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class Adapting extends Applet
{
public void init()
{
addMouseListener(new MyMouseAdapter(this));
addMouseMotionListener(new MyMouseAdapter(this));
}
}//end of class
class MyMouseAdapter extends MouseAdapter
{
Adapting a;
public MyMouseAdapter(Adapting a)
{
this.a=a;
}
public void mouseClicked(MouseEvent me)
{
a.setBackground(Color.red);
}
public void mouseMoved(MouseEvent me)
{
a.showStatus("Moving Mouse at "+me.getX()+","+me.getY());
}
}
/*<applet code=Adapting height=500 width=600></applet>*/
对于与 MouseEvent 对应的两个监听器,即 MouseListener
和 MouseMotionListener
,我使用适配器类 MouseAdapter
。 如果 MouseAdapter
类也完成了我监听鼠标运动事件的工作,那么 MouseMotionAdapter
类有什么用?
最佳答案
MouseAdapter
比 MouseMotionAdapter
实现了更多接口(interface)并包含更多方法,因此在 IDE 中使用它可能会更麻烦,并且可能会产生一些较小的性能影响。
如果您需要 MouseListener
以及 MouseMotionListener
,则应使用 MouseAdapter
。如果您不需要 MouseListener
方面,那么您可以使用 MouseMotionAdapter
。由于您似乎覆盖了在 MouseListener
中声明的 mouseClicked
,因此请坚持使用 MouseAdapter
。
关于java - 当我们有 MouseAdapter 类时,MouseMotionAdapter 类有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17408601/