java 在timer执行前取消这个timer的执行
答案:1 悬赏:70 手机版
解决时间 2021-11-10 10:40
- 提问者网友:我没有何以琛的痴心不悔
- 2021-11-09 12:54
java 在timer执行前取消这个timer的执行
最佳答案
- 五星知识达人网友:逃夭
- 2021-11-09 13:01
有个思路如下:
考虑设置一个标志,比如设一个boolean变量b=true,如果不想执行了,令b=false,在执行前检查b的值来决定是否执行。追问呢我请问一下我设置一个timer是3s后的.如果我在timer里面写判断式,呢他是在被呼叫时候判断,还是在3s后判断?追答你这个timer是关联到一个ActionListener是吧?倒计时到0时,执行里面的actionPerformed()方法对吧?那么这个判断放在actionPerformed()里面就可以。
就你这个假设,我写了一段代码,你可以参考一下:
int delay=1000; //延时1s
Timer timer;
boolean flag=true;
ActionListener listener=new ActionListener()
{
int count=0;
public void actionPerformed(ActionEvent e)
{
if(!flag) 如果标志置反,则停止计时器
{
timer.stop();
return;
}
count++;
if(count<3) //3s时间未到
return;
//到时要做的事
........
}
};
timer=new Timer(delay,listener);
timer.start(); //启动计时器
考虑设置一个标志,比如设一个boolean变量b=true,如果不想执行了,令b=false,在执行前检查b的值来决定是否执行。追问呢我请问一下我设置一个timer是3s后的.如果我在timer里面写判断式,呢他是在被呼叫时候判断,还是在3s后判断?追答你这个timer是关联到一个ActionListener是吧?倒计时到0时,执行里面的actionPerformed()方法对吧?那么这个判断放在actionPerformed()里面就可以。
就你这个假设,我写了一段代码,你可以参考一下:
int delay=1000; //延时1s
Timer timer;
boolean flag=true;
ActionListener listener=new ActionListener()
{
int count=0;
public void actionPerformed(ActionEvent e)
{
if(!flag) 如果标志置反,则停止计时器
{
timer.stop();
return;
}
count++;
if(count<3) //3s时间未到
return;
//到时要做的事
........
}
};
timer=new Timer(delay,listener);
timer.start(); //启动计时器
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯