Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在鼠标左键按下时检测鼠标移动?_Java_User Interface_Swing_Mouse - Fatal编程技术网

Java 如何在鼠标左键按下时检测鼠标移动?

Java 如何在鼠标左键按下时检测鼠标移动?,java,user-interface,swing,mouse,Java,User Interface,Swing,Mouse,我想在按下左键时检测鼠标移动 我只是创建一个绘图应用程序。我可以在没有按下任何鼠标的情况下检测到鼠标移动。但我想用鼠标左键检测 我想没有人会听到这个。那么,这样做的想法是什么呢?在MouseMotionListener中有mouseDragged方法…查看更多详细信息…我认为可能有某种鼠标拖动侦听器,但如果没有 捕获鼠标按钮向下和向上的事件。在这些事件中,设置一个布尔值,例如leftButtonIsDown=true(除非已经有简单的查询方法),然后在鼠标移动事件中,在MouseMotionLi

我想在按下左键时检测鼠标移动

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


我想没有人会听到这个。那么,这样做的想法是什么呢?

在MouseMotionListener中有mouseDragged方法…查看更多详细信息…

我认为可能有某种鼠标拖动侦听器,但如果没有


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

的块。您可以使用以下方法检查这一点:

SwingUtilities.isLeftMouseButton(me.getPoint())

您可以收听mouseDragged事件。

这里大部分内容都有,但我只是在我的文章中进行了扩展answer@DonHatch抢手货我本来想说“要点”,但那是错的:)我会让代码保持原样,这样人们就可以理解这个笑话(因为他们可能会使用Jeffs的答案)。我认为没有必要像这样填鸭式地输入代码。正如你从被接受的答案中可以看出的那样,OP只是想指出正确的方向。如果OP需要,他可以请求更多帮助。有趣的是,当问题指定需要鼠标左键时,没有提到如何确定按下哪个按钮的答案被接受。我通过搜索找到了这个问题,我真的需要它是问题中指定的鼠标左键,所以我对这个答案投了更高的票(尽管在撰写本文时isLeftMouseButton拼写错误)@Stephen P,我不小心对你的评论投了更高的票,因为我误读了它。这里绝对不需要总结API。这是浪费时间,因为这就是API的用途。所有的行动都需要指向正确的方向。事实上,只要提到类和方法就是一个很好的答案。人们应该始终能够访问API以了解详细信息。@camickr保持答案的常青性是一种很好的做法。这意味着限制链接,因为有一天它们可能会断开,而整个答案将是毫无意义的。总的来说,这应该是一个评论,而不是一个答案。这是一种“堆叠方式”,使答案成为解释,而不是指向参考网站和API的链接。@CoryB,我想我做这件事的时间比你长一点<代码>这意味着限制链接,-这就是我的评论所建议的。没有必要包含链接。@camickr啊,我现在明白你的意思了。你的第一个评论有点让人困惑。谢谢你的澄清。鉴于你的评论已经有4年了,我更多的是为那些将来可能会读到这个“正确”答案并学到坏习惯的新手而评论。(另外,使用资历是一种逻辑谬误,不欢迎新朋友。尽管我很荣幸你花时间来找我做计算。保持优雅,甜心。)API显然没有讨论按钮点击或移动时的按钮状态。这是一个误导性的答案。
component.addmouseMotionListener(new MouseAdapter() {
    public void mouseDragged(MouseEvent evt) {
       if ( SwingUtilities.isLeftMouseButton(evt)) {
         // do your stuff here
       }
    }
});