Java摆动计时器问题

Java摆动计时器问题,java,swing,timer,Java,Swing,Timer,我觉得摆动计时器有问题。我写了一些工作正常的代码,然后把它移到我的新电脑上,很快就失败了。我使用此方法编写了一个GUI类(基于JFrame): public void Splash(){ mainPanel.add(Empous.splash, BorderLayout.CENTER); while(Empous.splash.GetCount() < 3){ //System.out.println(Empous.splash.GetCount

我觉得摆动计时器有问题。我写了一些工作正常的代码,然后把它移到我的新电脑上,很快就失败了。我使用此方法编写了一个GUI类(基于JFrame):

public void Splash(){
    mainPanel.add(Empous.splash, BorderLayout.CENTER);
    while(Empous.splash.GetCount() < 3){
              //System.out.println(Empous.splash.GetCount());
    }
}

现在,如果第一个块中的print语句被注释掉,我的程序将在计时器停止后冻结。如果我取消对它的注释,程序将打印出计数器的值,然后在右边继续rain。我想把print语句取出,让while循环运行而不做任何事情,但我不能以目前的方式这样做。非常感谢您的帮助。

您似乎正在通过以下while循环打破Swing的线程规则:

while(Empous.splash.GetCount() < 3){
   //System.out.println(Empous.splash.GetCount());
}
while(Empous.splash.GetCount()<3){
//System.out.println(Empous.splash.GetCount());
}
既然已经有了一个Swing计时器,它可以在不释放事件线程的情况下处理这类事情,为什么还要有这个呢


不过,要获得更具体的建议,可以发布一条。

您似乎正在通过以下while循环打破Swing的线程规则:

while(Empous.splash.GetCount() < 3){
   //System.out.println(Empous.splash.GetCount());
}
while(Empous.splash.GetCount()<3){
//System.out.println(Empous.splash.GetCount());
}
既然已经有了一个Swing计时器,它可以在不释放事件线程的情况下处理这类事情,为什么还要有这个呢


要获得更具体的建议,可以发布。

您可能应该创建一个代码,或者至少发布更多代码。请在编写代码时学习并坚持这些代码:-)有关打印语句产生影响的原因的解释,请参阅。您可能应该创建一个,或者至少发布更多的代码。请在编写代码时学习并坚持:-)请参阅有关为什么print语句会产生不同的解释。啊,当我遇到这个问题时,我想我已经超越了我的java知识。我仍然不太理解一些线程的概念,所以我要多读一些——谢谢你的提示。啊,当我遇到这个问题时,我想我已经超越了我的java知识。我仍然不太理解一些线程的概念,所以我将阅读更多内容——谢谢你的提示。