" Daemon Thread Image Animator"没完成

时间:2014-11-22 15:07:53

标签: java multithreading swing thread-sleep

我正在做一个游戏,当一艘船死了,我制作了一个显示GIF爆炸的线程。问题是,有时爆炸不会消失,并在游戏结束前一直停留在屏幕上。

调试,我看到“Daemon Thread Image Animator -0”正在运行,我想那是GIF。这是爆炸的代码:

public void run(){
    setIcon(new ImageIcon(getClass().getClassLoader().getResource("Imag/explosion.gif")));
    Point pos = this.getLocation();
    setBounds(pos.x,pos.y);
    try{
        Thread.sleep(500);
    }
    catch(Exception e){
        e.printStackTrace();
    }
    juego.removeEntidad(this);

}

有时这个问题不会发生,我不知道如何修复它。

1 个答案:

答案 0 :(得分:1)

  

我正在做一个游戏,当一艘船死了,我制作了一个显示GIF爆炸的线程。

是的,您需要使用Thread,但不应该更新Thread中的GUI组件。

相反,您应该使用SwingWorker。有关使用SwingWorker的更多信息和示例,请阅读Swing中Swutch教程中的部分。

相关问题