web-dev-qa-db-ja.com

アニメーションGIFを表示する

JavaアプリケーションでアニメーションGIFをどのように表示しますか?

32
SamSol

Swingを使用すると、単にJLabelを使用できます

 public static void main(String[] args) throws MalformedURLException {

        URL url = new URL("<URL to your Animated GIF>");
        Icon icon = new ImageIcon(url);
        JLabel label = new JLabel(icon);

        JFrame f = new JFrame("Animation");
        f.getContentPane().add(label);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.pack();
        f.setLocationRelativeTo(null);
        f.setVisible(true);
    }
31
stacker

(ソースコード内の)ソースパッケージに保存されているアニメーションGIFを読み込むために、これはうまくいきました。

URL url = MyClass.class.getResource("/res/images/animated.gif");
ImageIcon imageIcon = new ImageIcon(url);
JLabel label = new JLabel(imageIcon);
5
Scott Wardlaw

私のためにこの作品!

public void showLoader(){
        URL url = this.getClass().getResource("images/ajax-loader.gif");
        Icon icon = new ImageIcon(url);
        JLabel label = new JLabel(icon);
        frameLoader.setUndecorated(true);
        frameLoader.getContentPane().add(label);
        frameLoader.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frameLoader.pack();
        frameLoader.setLocationRelativeTo(null);
        frameLoader.setVisible(true);
    }
4
Alan Moratorio
4
Inv3r53

私は同じ答えを探してここに来ましたが、トップの答えに基づいて、より簡単なコードを思いつきました。これが今後の検索に役立つことを願っています。

Icon icon = new ImageIcon("src/path.gif");
            try {
                mainframe.setContentPane(new JLabel(icon));
            } catch (Exception e) {
            }
3
Gray
//Class Name
public class ClassName {
//Make it runnable
public static void main(String args[]) throws MalformedURLException{
//Get the URL
URL img = this.getClass().getResource("src/Name.gif");
//Make it to a Icon
Icon icon = new ImageIcon(img);
//Make a new JLabel that shows "icon"
JLabel Gif = new JLabel(icon);

//Make a new Window
JFrame main = new JFrame("gif");
//adds the JLabel to the Window
main.getContentPane().add(Gif);
//Shows where and how big the Window is
main.setBounds(x, y, H, W);
//set the Default Close Operation to Exit everything on Close
main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Open the Window
main.setVisible(true);
   }
}
0
Bredosen

これを試して:

// I suppose you have already set your JFrame 
Icon imgIcon = new ImageIcon(this.getClass().getResource("ajax-loader.gif"));
JLabel label = new JLabel(imgIcon);
label.setBounds(668, 43, 46, 14); // for example, you can use your own values
frame.getContentPane().add(label);

このチュートリアルの JavaでアニメーションGIFを表示する方法

またはYouTubeでライブ: https://youtu.be/_NEnhm9mgdE

0
Mehdi

.gifファイルをGUIに入れたいが、他の要素とともに表示したかった。 .gifファイルは、URLからではなくJavaプロジェクトから取得されます。

1-インターフェースの上部は要素のリストになり、1つを選択できます

2-中央がアニメーションGIFになります

3-下部にはリストから選択された要素が表示されます

ここに私のコードがあります(2 Javaファイルが必要です。最初の(Interf.Java)は2番目(Display.Java)を呼び出します))。

1-Java

public class Interface_for {

    public static void main(String[] args) {

        Display Fr = new Display();

    }
}

2-Display.Java

情報:Javaプロジェクトに新しいソースフォルダー([新規]> [ソースフォルダー])を作成し、ファイルとして表示されるように.gifを内部に配置してください。

次のコードを含むgifファイルを取得するので、jarプロジェクトにエクスポートできます(アニメーション化されます)。

URL url = getClass()。getClassLoader()。getResource( "fire.gif");

  public class Display extends JFrame {
  private JPanel container = new JPanel();
  private JComboBox combo = new JComboBox();
  private JLabel label = new JLabel("A list");
  private JLabel label_2 = new JLabel ("Selection");

  public Display(){
    this.setTitle("Animation");
    this.setSize(400, 350);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setLocationRelativeTo(null);
    container.setLayout(new BorderLayout());
    combo.setPreferredSize(new Dimension(190, 20));
    //We create te list of elements for the top of the GUI
    String[] tab = {"Option 1","Option 2","Option 3","Option 4","Option 5"};
    combo = new JComboBox(tab);

    //Listener for the selected option
    combo.addActionListener(new ItemAction());

    //We add elements from the top of the interface
    JPanel top = new JPanel();
    top.add(label);
    top.add(combo);
    container.add(top, BorderLayout.NORTH);

    //We add elements from the center of the interface
    URL url = getClass().getClassLoader().getResource("fire.gif");
    Icon icon = new ImageIcon(url);
    JLabel center = new JLabel(icon);
    container.add(center, BorderLayout.CENTER);

    //We add elements from the bottom of the interface
    JPanel down = new JPanel();
    down.add(label_2);
    container.add(down,BorderLayout.SOUTH);

    this.setContentPane(container);
    this.setVisible(true);
    this.setResizable(false);
  }
  class ItemAction implements ActionListener{
      public void actionPerformed(ActionEvent e){
          label_2.setText("Chosen option: "+combo.getSelectedItem().toString());
      }
  }
}
0
Andy McRae