在本地创建的计时器上调用 cancel() 或清除

Calling cancel() or purge on a locally created timer

我只是想知道如何在本地创建的计时器上调用取消或清除,即我的计时器是在按钮测试上创建的:

        new Timer(1000, new ActionListener() {
        int count = 0;
        public void actionPerformed(ActionEvent e) {
            if (count == 5) {
                lights[0].toggle();
                lights[1].toggle();
            } else if (count == 7) {
                lights[1].toggle();
                lights[2].toggle();
            } else if (count == 12) {
                lights[2].toggle();
                lights[0].toggle();
                count = 0;
                //Ideally, call cancel() or purge here
            }
            count++;
        }
    }).start();

如何让计时器在最后一个 if 语句中取消?尝试调用 cancel() 或 purger() 尝试在 Actionlistener 上调用它。

Timer timer = new Timer(1000, null);
timer.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        // ...
        timer.stop();
        // ...
    }
});
timer.start();

Timer中没有cancel()purge()方法,所以我用存在的stop()来演示

ActionEvent 继承了一个方法来获取它发生的对象。

...
else if (count == 12) {
    lights[2].toggle();
    lights[0].toggle();
    count = 0;
    ((Timer)e.getSource()).stop();
}

Cancel()Purge() 是来自 java.util.Timer 的方法,javax.swing.Timer 使用 Stop()