我在一个frame里放入了三个风扇panel,然后想用三个不同的timer控制每个风扇,所以我用了一个timer数组。现在风扇能正常启动关闭,但我想使用滑动条使每个风扇能够加速减速,使用如下代码
slider[temp].addChangeListener(new ChangeListener()
{
public void stateChanged(ChangeEvent event)
{
timer[temp].setDelay(slider[temp].getValue()/10);
}
});
发现一旦滑动,每个风扇的速度都会改变,为什么呢?
在Java中,java.util.Timer 类是用于在指定时间之后执行任务的工具类。它不支持直接使用数组来管理定时任务。
如果您希望管理多个定时任务,可以考虑使用 java.util.TimerTask 类和 java.util.Timer 类的组合。您可以创建多个 TimerTask 对象,每个对象代表一个定时任务,然后使用 Timer 对象来调度这些任务。
以下是一个示例代码,演示如何使用 Timer 和 TimerTask 来管理多个定时任务:
import java.util.Timer;
import java.util.TimerTask;
public class TimerExample {
public static void main(String[] args) {
Timer timer = new Timer();
// 创建多个定时任务
TimerTask task1 = new TimerTask() {
public void run() {
System.out.println("Task 1 is executed!");
}
};
TimerTask task2 = new TimerTask() {
public void run() {
System.out.println("Task 2 is executed!");
}
};
// 将定时任务添加到定时器
timer.schedule(task1, 1000); // 在1秒后执行task1
timer.schedule(task2, 2000); // 在2秒后执行task2
}
}
在上述示例中,我们创建了两个 TimerTask 对象 task1 和 task2,分别表示两个定时任务。然后使用 Timer 对象的 schedule() 方法将这些任务添加到定时器中,并指定执行时间。
注意:在实际开发中,推荐使用更现代化的任务调度框架,如 java.util.concurrent.ScheduledExecutorService 接口和 java.util.concurrent.Executors 类,它们提供了更灵活和可扩展的定时任务管理方式。