Java swing 中显示GIF格式的图片
用java.awt.Image这个类不可以,
而javax.swing.ImageIcon可以。
package com.mao;
import java.awt.Graphics;
import java.awt.Image;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Test extends JPanel {
Image i = null;
String s = "C:\\Documents and Settings\\maoyuanl\\Desktop\\New Folder\\1.gif";
{
try {
i = ImageIO.read(new File(s));
} catch (Exception e) {
e.printStackTrace();
System.out.println("读取图片出错");
}
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(i, 0, 0, null);
}
public static void main(String[] s) {
JFrame frame = new JFrame();
frame.add(new Test());
frame.setBounds(100, 100, 500, 375);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
package com.mao;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Test {
ImageIcon i = new ImageIcon("C:\\Documents and Settings\\maoyuanl\\Desktop\\New Folder\\1.gif");
public static void main(String []s){
JFrame frame=new JFrame();
JLabel lable=new JLabel(new Test().i);
frame.add(lable);
frame.setBounds(100, 100, 500, 375);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
可以看到,同一张图片,上边的情况gif静止,而下边运动显示。