我在做一个游戏,当一艘船死了的时候,我做了一个线程来展示GIF爆炸。问题是,有时爆炸并不会消失,而且会一直停留在屏幕上,直到游戏结束。
调试时,我看到“守护进程线程图像动画程序-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);
}有时这个问题不会发生,我不知道如何解决它。
发布于 2014-11-22 23:58:34
我正在做一个游戏,当一艘船死了的时候,我做了一个线程,展示了一个
爆炸。
是的,您需要使用Thread,但您不应该在Thread中更新GUI组件。
相反,您可能应该使用SwingWorker。有关使用SwingWorker的更多信息和示例,请阅读Swing教程中关于Swing并发性的部分。
https://stackoverflow.com/questions/27078845
复制相似问题