Java &引用;守护进程线程图像动画器“;未完成
我在做一个游戏,当一艘船死了,我会制作一条显示GIF爆炸的线。问题是,有时候这种爆炸并没有消失,而是一直持续到游戏结束 调试时,我看到“守护进程线程图像动画-0”正在运行,我猜GIF。这是爆炸的代码:Java &引用;守护进程线程图像动画器“;未完成,java,multithreading,swing,thread-sleep,Java,Multithreading,Swing,Thread Sleep,我在做一个游戏,当一艘船死了,我会制作一条显示GIF爆炸的线。问题是,有时候这种爆炸并没有消失,而是一直持续到游戏结束 调试时,我看到“守护进程线程图像动画-0”正在运行,我猜GIF。这是爆炸的代码: public void run(){ setIcon(new ImageIcon(getClass().getClassLoader().getResource("Imag/explosion.gif"))); Point pos = this.getLocation();
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);
}
有时这个问题不会发生,我不知道如何解决它
我在做一个游戏,当一艘船死了,我会制作一条显示GIF爆炸的线
是的,您需要使用线程,但不应在线程中更新GUI组件
相反,您可能应该使用
SwingWorker
。阅读Swing教程中关于Swing中并发性的部分,了解更多信息和使用SwingWorker
的示例,如果用户线程太难说话,也没有用户线程。sleep(int)与Swing(Oracle教程EventDispatchThread中的更多信息)一起使用,以获得更好的帮助,问题是为了使用SwingWorker,我需要类扩展它。但是我正在扩展JLabel,我不能生成一个倍数inheritance@Mario:然后使用composition,for,将标签和worker包含在同一个类中。