我正在做一个游戏,当一艘船死了,我制作了一个显示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);
}
有时这个问题不会发生,我不知道如何修复它。
答案 0 :(得分:1)
我正在做一个游戏,当一艘船死了,我制作了一个显示GIF爆炸的线程。
是的,您需要使用Thread,但不应该更新Thread中的GUI组件。
相反,您应该使用SwingWorker
。有关使用SwingWorker
的更多信息和示例,请阅读Swing中Swutch教程中的部分。