Show animated GIF

后端 未结 9 1698
佛祖请我去吃肉
佛祖请我去吃肉 2020-11-27 05:38

How do you display an animated GIF in a Java application?

相关标签:
9条回答
  • 2020-11-27 06:30

    check it out:

    http://java.sun.com/docs/books/tutorial/uiswing/components/icon.html#getresource

    0 讨论(0)
  • 2020-11-27 06:31

    I wanted to put the .gif file in a GUI but displayed with other elements. And the .gif file would be taken from the java project and not from an URL.

    1 - Top of the interface would be a list of elements where we can choose one

    2 - Center would be the animated GIF

    3 - Bottom would display the element chosen from the list

    Here is my code (I need 2 java files, the first (Interf.java) calls the second (Display.java)):

    1 - Interf.java

    public class Interface_for {
    
        public static void main(String[] args) {
    
            Display Fr = new Display();
    
        }
    }
    

    2 - Display.java

    INFOS: Be shure to create a new source folder (NEW > source folder) in your java project and put the .gif inside for it to be seen as a file.

    I get the gif file with the code below, so I can it export it in a jar project(it's then animated).

    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 讨论(0)
  • 2020-11-27 06:33

    This work for me!

    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);
        }
    
    0 讨论(0)
提交回复
热议问题