同时注册MouseListener和MouseMotionListener

时间:2016-06-11 22:08:55

标签: java swing mouseevent mouselistener mousemotionlistener

我正在尝试撰写包含MouseMouseListener的{​​{1}}课程(实施MouseMotionListenermousePressed())。我希望能够在鼠标停止时检测鼠标移动。我可以单独检测每个,但不能同时检测。例如:

mouseMoved()

你应该看到,"按下"和"感动"两个都打印出来,但是一旦按下鼠标,"移动"在释放鼠标之前不会打印。我怎么做才能做到这一点?

2 个答案:

答案 0 :(得分:4)

From the Java API:

  

void mouseDragged(MouseEvent e)

     

在组件上按下鼠标按钮然后拖动时调用。

     

void mouseMoved(MouseEvent e)

     

当鼠标光标移动到组件上但没有按下按钮时调用。

只有在没有按下任何按钮时才会触发

mouseMoved个事件。

答案 1 :(得分:2)

  

正如您所看到的那样,“Pressed”和“Moved”都被打印出来,但是一旦按下鼠标,只有释放鼠标才会打印“Moved”。

按下鼠标时,您需要处理的事件是mouseDragged事件。