Stop()当前正在执行的计时器

时间:2011-11-27 03:16:48

标签: java swing time

我在另一个关于swing Timer API和你的方法的问题中看到了,preference stop(); 我的问题是,当它正在执行时,是否可以停止(如果util.timer取消)计时器?

我有一个计时器,当我调用stop()时需要停止一个线程,即使它当前正在运行。

1 个答案:

答案 0 :(得分:3)

是的,可以通过调用stop()来停止Swing Timer。这就是为什么这个类有这种方法。说完这个,我觉得你告诉我们的问题还有更多。但我不知道Swing Timer与“停止线程”有什么关系。

修改
你说:

  

我的问题是,我有一个摆动计时器,这个执行另一个方法,每30秒执行一次,我可以手动执行相同的单一方法,顺便说一句,我想在手动方法时停止摆动计时器运行并且当手动方法完成时,启动摆动计时器,因为计时器可以阻碍其他方法。主要是手动方法。

一种可能的解决方案:您可以使用Swing Timer,但只需将其大部分代码包含在一个由boolean控制的if语句中,称为runTimer,这样Timer的actionPerformed中的代码只有在boolean为true时才会运行。然后在SwingWorker中运行后台线程,但在执行SwingWorker之前将runTimer boolean设置为false,然后在SwingWorker的done()方法中将其设置为true。