Java Swing Timer无限循环
Java Swing Timer infinite loop
我设置的简单 Java 摇摆计时器有问题。它做的一切都很好,直到不得不停下来。我认为它是在计时器上创建一个无限循环的计时器,但我一直在关注多个教程,但我看不出哪里出了问题。
代码解释:runButtonListener 需要循环遍历 filelinecount 变量所说的次数(从不同的函数读取)。目前的代码只是打印到系统,稍后我会让它更新一些动画。 filelinecount 在下面的代码中是 0,但是被不同的函数改变了。所以为了调试,我认为如果你手动更改filelinecount的值,附加的代码是可以运行的。
非常感谢任何帮助
private int filelinecount = 0;
private int timercount = 0;
private Timer timer;
class runButtonListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent e){
// LOOK AT TIMER!!!
if (timercount == filelinecount) {
timer.stop();
System.out.println("stopping");
//timercount = 0;
} else {
System.out.println("yo " + timercount + "," + filelinecount);
timercount++;
}
timer = new Timer(100,this);
timer.start();
}
}
每次计时器给您回电时,您都会创建一个新计时器并启动它。
这包括在您致电 timer.stop()
!
之后
如果您想继续,您只需要创建新的计时器。
你真的应该看看另一种方法来做到这一点,而不是不断地重新创建计时器。根据您的具体要求,有多种方法可用。
例如使用scheduleAtFixedRate
、使用工作线程或SwingWorker
、ScheduledExecutorService
等
我设置的简单 Java 摇摆计时器有问题。它做的一切都很好,直到不得不停下来。我认为它是在计时器上创建一个无限循环的计时器,但我一直在关注多个教程,但我看不出哪里出了问题。
代码解释:runButtonListener 需要循环遍历 filelinecount 变量所说的次数(从不同的函数读取)。目前的代码只是打印到系统,稍后我会让它更新一些动画。 filelinecount 在下面的代码中是 0,但是被不同的函数改变了。所以为了调试,我认为如果你手动更改filelinecount的值,附加的代码是可以运行的。
非常感谢任何帮助
private int filelinecount = 0;
private int timercount = 0;
private Timer timer;
class runButtonListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent e){
// LOOK AT TIMER!!!
if (timercount == filelinecount) {
timer.stop();
System.out.println("stopping");
//timercount = 0;
} else {
System.out.println("yo " + timercount + "," + filelinecount);
timercount++;
}
timer = new Timer(100,this);
timer.start();
}
}
每次计时器给您回电时,您都会创建一个新计时器并启动它。
这包括在您致电 timer.stop()
!
如果您想继续,您只需要创建新的计时器。
你真的应该看看另一种方法来做到这一点,而不是不断地重新创建计时器。根据您的具体要求,有多种方法可用。
例如使用scheduleAtFixedRate
、使用工作线程或SwingWorker
、ScheduledExecutorService
等