现在我有一个延时为5秒的计时器,但是在运行一次后我需要一个不同的延迟。 我正在浏览一些图片,并在第一轮中显示它们5秒钟。之后,它应该显示他们10个seonds。如何在运行时改变定时器的延迟?如何在每次运行时更改Timer的延迟?
什么有发生:
- 启动计时器
- 运行5秒钟
- 更改延迟10秒
现在我有一个延时为5秒的计时器,但是在运行一次后我需要一个不同的延迟。 我正在浏览一些图片,并在第一轮中显示它们5秒钟。之后,它应该显示他们10个seonds。如何在运行时改变定时器的延迟?如何在每次运行时更改Timer的延迟?
什么有发生:
尝试添加一些代码
您需要检查计时器是否有5秒钟使其等于10。
int delayTime = 5;
//run first delay
if (delayTime == 5){
delayTime = 10;
}
这是这个想法的一些代码,不知道它在你的项目中的外观。
有可以为您的使用情况下,两个办法:
第一种方法:
好比说我想要显示的图片1000秒。所以我会执行循环直到1000秒;或者如果你想无限运行,那么你可以改变for循环的条件。下面的代码将在每5秒延迟一次后执行for循环。
int delayTimeInMiliSec;
for(int delayTime = 5 ; delayTime<=1000; delayTime = delayTime+5){
delayTimeInMiliSec = delayTime * 1000;
// here Call your method that shows pictures
Thread.sleep(delayTimeInMiliSec);
}
第二种方法:
代码示例:
import java.util.TimerTask;
// Create a class extends with TimerTask
public class ScheduledTask extends TimerTask {
// Add your task here
@Override
public void run() {
//show pictures code
}
}
import java.util.Timer;
public class SchedulerMain {
public static void main(String args[]) throws InterruptedException {
Timer time = new Timer(); // Instantiate Timer Object
ScheduledTask st = new ScheduledTask(); // Instantiate SheduledTask class
time.schedule(st, 0, 5000); // Create Repetitively task for every 5 secs
}
}
复制http://stackoverflow.com/questions/8386545/java-timer-with-not-fixed-delay –
哪'Timer'? 'java.util.Timer'或'javax.swing.Timer'? – MadProgrammer