一个定时器,在程序运行时就开始计时,程序界面上有个按钮,如果显示为“停止”,按下就停止计时,反之按下后开始计时。
...
Timer timer = new Timer();
MyTask tasks=new MyTask();class MyTask extends java.util.TimerTask{......}
...
...
初始化函数中:{timer.schedule(tasks, 0, 1000);}
...
...
public void jButton1_actionPerformed(ActionEvent e) {
if (jButton1.getText()=="开始")
{
XXXXXXXXXXXX
jButton1.setText("停止");
}
else
{
tasks.cancel();
jButton1.setText("开始");
}
}现在我不知道按下“开始”的代码应该怎样写。因为按下“停止”后,初始化时建立的MyTask对象就没了,按下“开始”,又要新建一个MyTask对象,但是这个对象不能在else中被调用啊。
...
Timer timer = new Timer();
MyTask tasks=new MyTask();class MyTask extends java.util.TimerTask{......}
...
...
初始化函数中:{timer.schedule(tasks, 0, 1000);}
...
...
public void jButton1_actionPerformed(ActionEvent e) {
if (jButton1.getText()=="开始")
{
XXXXXXXXXXXX
jButton1.setText("停止");
}
else
{
tasks.cancel();
jButton1.setText("开始");
}
}现在我不知道按下“开始”的代码应该怎样写。因为按下“停止”后,初始化时建立的MyTask对象就没了,按下“开始”,又要新建一个MyTask对象,但是这个对象不能在else中被调用啊。
/** Timer */
private static Timer timer = new Timer();开始:timer.schedule(tasks, 0, 1000);停止:timer.cancel();
因为执行timer.cancel()时,Timer就结束了,再在“开始”里面调用timer,对象已经没有了?上面这些是用的java.util.Timer包,后来我用javax.swing.Timer包里面的 timer.start(),timer.stop()解决了全部问题。不知道你用你的方法是如何实现反复调用“开始”、“停止”的?