两个同时发生的鼠标听众在Swing中互相干扰

时间:2011-12-29 13:58:19

标签: java swing mouselistener

我的问题是如何使用Swing处理同时发生的鼠标事件。

添加了MouseMotionListener和MouseListener以跟随JPanel。

我有一个对象,根据鼠标指针位置的x和y坐标进行旋转(由MouseMotionListener的mouseMoved方法实现)。

我还有一个MouseListener,它根据实现的mouseReleased()方法执行其操作。

对象根据MouseMotionListener整齐地旋转,但按下鼠标按钮时会出现问题。当鼠标移动时,旋转停止,因为JPanel现在正在等待执行mouseReleased()方法。

任何想法是什么是使这些事件同时发生的最佳方式,以便根据鼠标指针坐标的旋转和根据mouseReleased()的操作可以同时执行而不会相互干扰?

2 个答案:

答案 0 :(得分:2)

如果您想同时在应用程序中执行两个操作,则可以在不同的线程中执行此操作 如果你需要在不同的线程中做一些事情 - 你应该使用SwingWorker

答案 1 :(得分:2)

一篇旧文章正在讨论具体细节:

http://www.javaworld.com/javaworld/jw-08-2007/jw-08-swingthreading.html?page=1

值得一读的是什么和怎么样。