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

时间:2018-10-28 08:16:35

标签: java swing awt

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

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

let d: ArraySlice<Int> = ArraySlice(b.map { $0 as! Int })

Timer中没有Timer timer = new Timer(1000, null); timer.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // ... timer.stop(); // ... } }); timer.start(); cancel()方法,因此我以存在的purge()进行了演示。