您需要通过调用以下方法来取消计时器
timer.cancel(); // Terminates this timer, discarding any currently scheduled tasks.timer.purge(); // Removes all cancelled tasks from this timer's task queue.
这将取消任务,因此可以执行以下操作:
import java.util.Scanner;import java.util.Timer;import java.util.TimerTask;import java.awt.Toolkit;class Alarm { private static boolean run = true; public static void main(String[] args) { long delay; Scanner scan = new Scanner(System.in); System.out.print("Enter a delay in seconds: "); delay = scan.nextInt()*1000; final Timer timer = new Timer(); final TimerTask task = new TimerTask() { @Override public void run() { if(run) { Toolkit.getDefaultToolkit().beep(); } else { timer.cancel(); timer.purge(); } } }; timer.schedule(task, delay); // set run to false here to stop the timer. run = false; }}


