【发布时间】:2019-07-26 03:41:25
【问题描述】:
我正在尝试重置 Timer 以避免出现多个实例。为此,我想从一个单独的类中停止 Timer,如下所示:
public void Timer()
{
Timer timer = new Timer();
long interval = (1000) ;
timer.schedule( new TimerTask()
{
public void run()
{
// code //
}
}, 0, interval);
}
public void Stop()
{
// stop Timer //
}
我觉得这可以通过终止 Timer(); 来实现。如果无法停止计时器,我将非常感谢向我展示如何最好地尽可能干净地终止课程。谢谢。
【问题讨论】:
-
正如您目前拥有的那样,您将无法对计时器执行任何操作,因为它是
Timer的本地函数,void返回方法。 -
@ChiefTwoPencils 很抱歉,说到 OOP,我很绝望。我可以改变什么来完成这项工作?
-
在这方面有很多选择,但都涉及从方法中取出计时器。一种方法是将其作为
Timer()和Stop()的班级成员。 -
您使用了 Swing 标签,这意味着您应该使用 Swing Timer,而不是 AWT Timer。见How to Use Swing Timers。 `我想从一个单独的类中停止 Timer` - Timer 与任何其他 Java 对象没有什么不同。如果要在另一个类中引用 Timer,则另一个类需要对 Timer 变量的引用。您如何做到这一点取决于您当前的设计。我们对此一无所知,因此无法给出具体建议。
标签: java swing class timer timertask