更改计时器的延迟,而不在每次方法运行时创建新的计时器



所以基本上我的程序中有一个定时器方法,它使用整数z作为参数,以及定时器本身的延迟。但每次我运行这个方法时,它都会创建一个新的计时器,而不是删除旧的计时器。所以我决定添加一个if-else块,这样它只在第一次创建了一个计时器,但现在它可能没有初始化,因为它是在if-elses块中初始化的。有人能帮我吗?

public void timer(int z) {
    int count = 0;
    Timer tester;
    z = (60000 / z);
    decide = true;
    ActionListener taskPerformer = new ActionListener() {
        public void actionPerformed(ActionEvent evt) {noteDecider();}
    };
    if(count == 0) {
        tester = new Timer(z, taskPerformer);
        tester.start();
    }
    else {
        tester.setDelay(z);
        tester.start();
    }
    count++; 
}

我想说,如果你关心优化代码,你应该考虑优化Timer类。比如在Timer本身内部移动ActionListener对象等等。您的timer(intz)方法所做的只是尝试使用一个对象来跟踪时间,而不是管理timer对象的生命周期。

最新更新