Java 停止当前计划/运行时间任务

Java 停止当前计划/运行时间任务,java,timertask,Java,Timertask,我有一个带有ActionListener的GUI按钮,它每秒通过计时器调用ThisTimerTask 导入java.util.* public class TimerSchedule { public static Timer RunTimer() { final Timer run = new Timer(); TimerTask runTask = new TimerTask(){ public void run(){ System.out.println("Running");}};

我有一个带有ActionListener的GUI按钮,它每秒通过计时器调用ThisTimerTask

导入java.util.*

public class TimerSchedule {

public static Timer RunTimer() {

final Timer run = new Timer();
TimerTask runTask = new TimerTask(){
public void run(){
System.out.println("Running");}};
run.schedule(runTask, 1000, 1000);
return run;
}

public static void EndTimer() {
Timer run = TimerSchedule.RunTimer();
run.cancel();
System.out.println ("cancel");  
}
}

如何调用EndTimer来取消RunTimer?单击按钮将显示“取消”很好。

只需调用
计时器上的
run.cancel()
方法。循环在这里可能是一个误导性的术语,也许这是我尚未遇到的特定Java术语。这段代码以“循环”的形式无限地每秒打印一次“运行”,顺便说一句,如果您计划在
计时器中执行任何与GUI相关的操作,那么由于Swing线程模型,您必须使用
javax.Swing.Timer
,而不是像您当前所做的那样使用
java.util.Timer
。您可以调用
cancel()
在计时器实例上,正如Boris所说,如果您在类级别声明实例,它不是一个循环。这是一个计时器任务,由计时器每秒一次又一次地运行。如果您想让它停止,请按之前的建议调用cancel。