我想创建一个计时器,我可以创建一个运行实例。我在这段代码的末尾创建了这个。我想要做的是能够启动每个计时器并让它们同时运行,但当一个计时器完成时,另一个计时器应该继续。
此代码有效,但计时器都继续运行。我该如何更改它,以便当一个计时器结束时它不会重置,然后第二个计时器结束时一切都会停止。
也许我应该使用线程?不确定这个吗?也许每个计时器都可以链接到一个线程。
代码(程序):
import java.awt.Toolkit;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.JOptionPane;
public class DDHTypeCasting {
public static void main(String[] args) {
AnnoyingBeep y1 = new AnnoyingBeep(5,"Timer 1");
AnnoyingBeep y2 = new AnnoyingBeep(10,"Timer 2");
System.out.format("Task scheduled.%n");
}
}
class AnnoyingBeep {
Timer timer;
public AnnoyingBeep() { }
public AnnoyingBeep(int a, String s) {
timer = new Timer();
timer.schedule(new RemindTask(a,s),a,1*1000); //delay
}
}
class RemindTask extends TimerTask {
Toolkit toolkit;
int numWarningBeeps = 0;
String myString = null;
RemindTask(int a, String s) {
numWarningBeeps = a;
myString = s;
}
public void run() {
if (numWarningBeeps > 0) {
System.out.format("Beep!%n " + myString);
numWarningBeeps--;
} else {
System.out.format("Time's up!%n " + myString);
// System.exit(0);
}
}
}
最佳答案
我认为你需要实现Runnable
接口(interface)并像Thread
一样使用它:
public class ThreadTimer extends Timer implements Runnable {
public void run() {
}
}
关于java - 让两个计时器工作并在应该的时候结束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20755557/