【发布时间】:2012-01-29 22:10:23
【问题描述】:
我的问题是关于如何使用 Swing 处理同时发生的鼠标事件。
MouseMotionListener 和 MouseListener 都被添加到 JPanel 之后。
我有一个对象,它的旋转根据鼠标指针位置的 x 和 y 坐标进行(由 MouseMotionListener 的 mouseMoved 方法实现)。
我还有一个 MouseListener,它根据实现的 mouseReleased() 方法执行其操作。
对象正在根据 MouseMotionListener 整齐地旋转,但是当按下鼠标按钮时会出现问题。随着鼠标的移动,旋转停止,显然 JPanel 现在正在等待执行 mouseReleased() 方法。
任何想法使这些事件同时发生的最佳方法是什么,以便根据鼠标指针坐标的旋转和根据 mouseReleased() 的操作可以同时执行而不会相互干扰?
【问题讨论】:
-
发布您的代码将有助于诊断问题。但是,
mouseReleased方法在您释放鼠标按钮之前不会执行。JPanel不会等你松开按钮。你在用mousePressed方法做些什么吗? -
mousePressed 只是被覆盖了,但是将来我还必须为其添加一些功能。这就是为什么我需要添加一些并发来处理任务
-
也许你不应该在 JPanel 中简单地(没有按下按钮)鼠标时进行旋转,但只有当其中一个鼠标按钮被按住时。
标签: java swing mouselistener