如何检查队列中的鼠标事件

时间:2011-10-05 00:26:18

标签: java caching buffer mouseevent

我制作了一个查看分形的程序,当用户点击时,程序会重新计算并缩放。但是如果用户在程序处理第一个缩放时再次单击,我希望它停止,并直接跳到第二个缩放。但是,由于程序正忙于计算,因此GUI不会检测到鼠标事件。即使应用程序繁忙,如何确保处理鼠标事件。

3 个答案:

答案 0 :(得分:3)

使用SwingWorker。它们用于执行由GUI事件触发的后台任务(例如按下按钮)。

你可以让你的SwingWorker取消(可能是它会进行某种循环),如果提交了一个新任务,取消正在运行的任务,然后启动下一个任务。

答案 1 :(得分:2)

正如我在上面的评论中所说,你正在寻找的东西被称为线程。以下链接将为您提供相关信息。

http://download.oracle.com/javase/tutorial/essential/concurrency/

线程会让你的UI线程工作,而在后台其他一些线程正在忙着计算。

祝你好运!

答案 2 :(得分:0)

非常感谢您的输入,但我找到了另一个解决方案:我创建了一个runnable来生成新的分形,该分形在循环中运行,当某个布尔值为false时终止。当gui检测到鼠标单击时,它会将该布尔值设置为false,并使用新的缩放坐标再次运行计算线程。