2010-12-14 184 views
6

我想检测鼠标移动,而按下左按钮。如何在鼠标左键按下时检测鼠标移动?

我只是创建一个绘图应用程序。我可以检测到没有任何鼠标按下鼠标移动。但我想用鼠标左键检测。

我认为这没有任何听众。那么,这样做的想法是什么?

回答

5

存在的MouseMotionListener的mouseDragged方法...查看this出更多细节...

+4

@Stephen P,我无意中提出了你的评论,因为我误解了它。这里绝对不需要总结API。这是浪费时间,因为这是API的用途。所有OP都需要指向正确的方向。事实上,只是提到类和方法是一个很好的答案。人们应该总是可以访问API来阅读详细信息。 – camickr 2010-12-14 21:38:19

+0

同意camickr – hologram 2013-02-06 20:17:29

+0

@camickr这是一个良好的做法,以保持答案常绿。这意味着限制链接,因为有一天它们可能会中断,整个答案将会失败。总的来说,这应该是一个评论,而不是一个答案。这是“堆栈的方式”使答案成为解释,而不是指向参考站点和API的链接。 – 2014-09-15 02:35:03

-1

我觉得可能是某种鼠标拖动听众的,但如果没有...

捕获鼠标按钮向下和向上事件。在这些事件中,设置一个布尔值,如leftButtonIsDown = true(除非有已经来查询一些简单的方法),然后在鼠标移动事件使用像if (leftButtonIsDown)

2

块在你的MouseMotionListener您可以检查此使用:

SwingUtilities.isLeftMouseButton(me.getPoint()) 

你会听到mouseDragged事件。

+1

你主要是在这里,但我只是扩大了我的回答 – 2010-12-14 20:36:25

+0

它应该在MouseEvent上调用,而不是在点 – 2013-11-29 03:07:30

+0

@DonHatch,很好的捕获。我会说很好的“点”,但这是错误的:)我会留下代码,以便人们可以得到这个笑话(因为他们可能会使用杰夫的答案)。 – camickr 2013-11-29 03:23:25

16
component.addmouseMotionListener(new MouseAdapter() { 
    public void mouseDragged(MouseEvent evt) { 
     if (SwingUtilities.isLeftMouseButton(evt)) { 
     // do your stuff here 
     } 
    } 
}); 
+0

我看不到需要像这样挖掘Feed代码。正如你可以从被接受的答案中看出的那样,OP刚刚指出了正确的方向。如果他需要,OP可以要求更多的帮助。 – camickr 2010-12-14 21:33:47

+0

有趣的是,没有提到如何找出哪个按钮被按下的答案被接受,当问题指定*左*鼠标按钮是必要的。我通过搜索发现了这个问题,而且我确实需要它是问题中指定的* left *鼠标按钮,所以我对此答案进行了upvoting(尽管在撰写本文时isLeftMouseButton拼写错误) – 2013-11-29 03:05:30

相关问题