Java 有没有办法让MouseListener、MouseMotionListener和ActionListener同时工作?

Java 有没有办法让MouseListener、MouseMotionListener和ActionListener同时工作?,java,multithreading,swing,awt,listeners,Java,Multithreading,Swing,Awt,Listeners,我一直在开发一个程序,它使用箭头键移动一个代表玩家的矩形,鼠标移动和点击来瞄准新创建的快照 但是,每次我按住鼠标时,快照仅沿鼠标第一次按下的点的方向移动 我知道事件通常在EDT中处理,但是有没有一种方法可以同时使用线程检查这些事件 这个程序有一个链接——我对共享代码还不熟悉,所以我刚刚上传了整个程序。提前感谢您提供有关此问题的任何建议。在您检测到鼠标点击后,但在您检测到鼠标未被锁定之前,您似乎没有从MotionListener更新最新的已知鼠标位置。您应该只存储每次调用侦听器时获得的状态,并在

我一直在开发一个程序,它使用箭头键移动一个代表玩家的矩形,鼠标移动和点击来瞄准新创建的快照

但是,每次我按住鼠标时,快照仅沿鼠标第一次按下的点的方向移动

我知道事件通常在EDT中处理,但是有没有一种方法可以同时使用线程检查这些事件


这个程序有一个链接——我对共享代码还不熟悉,所以我刚刚上传了整个程序。提前感谢您提供有关此问题的任何建议。

在您检测到鼠标点击后,但在您检测到鼠标未被锁定之前,您似乎没有从MotionListener更新最新的已知鼠标位置。您应该只存储每次调用侦听器时获得的状态,并在以后使用它。这样想一想,当鼠标位置99.9%在同一位置时,点击按钮时知道精确的鼠标位置有什么区别?看看这个@user3919381,听起来你的问题只有在按住鼠标的时候才会发生。如果是这样,请尝试在MouseMotionListener中使用MouseDragged事件。我尝试过使用MouseDragged和MousePressed,但在这两种情况下,mouseX、mouseY的点(在这两种方法中都是e.getX、e.getY)在释放鼠标之前始终是相同的。我要问的是如何使它不断更新,因为它似乎一次只能从MouseListener或MouseMotionListener调用一个方法。使用MouseMoved和MouseMotaged它对我有效!!!!!