Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GIF没有循环_Java_Loops_Animated Gif - Fatal编程技术网

Java 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

我正在创造一个小游戏,我有一个问题。我放了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.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传递给。