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

        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上调用它。

最佳答案

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()

08-15 21:11