timer可以使用数组吗?

我在一个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 类,它们提供了更灵活和可扩展的定时任务管理方式。