java 为什么鼠标移动时mouseDragged没有调用

节选了部分程序,mainPaint显示后mouseDragged和mouseMoved都没反应,mousePressed等都有反应

class MyFrame extends Frame
{
MyDrawPanel mainPaint = new MyDrawPanel(this);

MyFrame()
{
mainPaint.addMouseListener(new MouseAdpt(this));
}
}

class MyDrawPanel extends Panel
{
MyFrame mainFrame;

MyDrawPanel(MyFrame mf)
{
mainFrame = mf;
}
}

class MouseAdpt extends MouseAdapter
{
MyFrame mainFrame;

public MouseAdpt(MyFrame mf)
{
mainFrame = mf;
}

public void mouseDragged(MouseEvent e)
{
System.out.println("mouseDragged");
}
}

mouseDragged 顾名思义是“拖动”鼠标的意思。你得按住鼠标拖动才会调用啊。
mouseMoved 才是鼠标移动时会调用的。
------------------------------------------------------------------------
你忘写 addMouseMotionListener(new MouseAdapter()) 了哈!
不过你最好建一个 MouseAdapter 对象:
MouseAdapter ma = new MouseAdapter();
addMouseListener(ma);
addMouseMotionListener(ma);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-01-09
鼠标拖动 mouseDragged 选定并按住移动叫拖动
鼠标移动 mouseMoved 未选定对象的移动

参考资料:www.asixer.com

相似回答