Java GIF没有循环
我正在创造一个小游戏,我有一个问题。我放了2个gif,当gif结束时,图像停止,不再循环。我想要一种循环这个gif的方法,因为在程序外它工作得很好。 代码如下:Java GIF没有循环,java,loops,animated-gif,Java,Loops,Animated Gif,我正在创造一个小游戏,我有一个问题。我放了2个gif,当gif结束时,图像停止,不再循环。我想要一种循环这个gif的方法,因为在程序外它工作得很好。 代码如下: import java.io.File; import javax.imageio.ImageIO; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JLay
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.WindowConstants;
public class EjemploJLayeredPane {
public static void main(String[] args) {
JFrame v = new JFrame("Ejemplo de JLayeredPane");
JLayeredPane layered = new JLayeredPane();
JLabel fondo = new JLabel();
ImageIcon imagen = new ImageIcon("fondo batalla.png");
fondo.setIcon(imagen);
fondo.setSize(imagen.getIconWidth(), imagen.getIconHeight());
JLabel primerPlano1 = new JLabel();
ImageIcon imagen1 = new ImageIcon("pikachufrente.gif");
primerPlano1.setIcon(imagen1);
primerPlano1.setBounds(275,-80,400,400);
JLabel primerPlano2 = new JLabel();
ImageIcon imagen2 = new ImageIcon("charmanderespalda.gif");
primerPlano2.setIcon(imagen2);
primerPlano2.setBounds(85,20,400,400);
layered.add(fondo, new Integer(1));
layered.add(primerPlano1, new Integer(2));
layered.add(primerPlano2, new Integer(2));
v.getContentPane().add(layered);
v.setSize(imagen.getIconWidth(), imagen.getIconHeight() + 20);
v.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
v.setVisible(true);
}
}
这对我来说很有用-没有界限,什么都没有:
JFrame f=new JFrame();
f.setSize(500, 500);
JLabel l=new JLabel();
ImageIcon icon=new ImageIcon("bird.gif");
l.setIcon(icon);
f.add(l);
f.setVisible(true);
它对我有用。事实上,我们看到的不一致行为表明问题在于您在AWT事件调度线程之外执行Swing操作,这被记录为导致不可预测的行为。将所有代码移到Runnable的
run
方法中,并将该Runnable传递给。