载入图片的几种常用方法
/** * <p>Title: PaintPanel</p> * <p>Description:此程序演示如何载入图片,并让其作为panel的背景</p> * <p>Copyright: Copyright (c) 2005</p> * <p>Company: gift2u</p> * @author liwu chinajavaworld * @version 1.0 */ import javax.swing.*; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.net.URL; import java.net.*; import java.awt.MediaTracker; import java.io.File; import javax.imageio.ImageIO; import java.io.*; import java.awt.Toolkit; public class PaintPanel extends JPanel { Image image = null; /** * PaintPanel * 外部给图片,直接载入 * @param image Image */ public PaintPanel(Image image) { this.image = image; } /** * PaintPanel * 外部给出file引用,通过ImageIO载入 * @param file File */ | |
public PaintPanel(File file) { |
测试代码:
import javax.swing.JFrame;: 运行图:
import java.net.URL;
import javax.swing.ImageIcon;
import java.awt.MediaTracker;
import java.awt.Image;
import java.net.MalformedURLException;
import java.awt.GridLayout;
import javax.swing.JDialog;
import java.io.File;
public class TestPaintPanel {
public static void main(String[] args) {
JFrame fr = new JFrame();
fr.setTitle("GIFT-PaintPanel-演示载入图片的方法");
String urlstr = "http://photo.sohu.com/20040823/Img221677764.jpg";
String filestr="D://a.jpg";
//如果是自己的机器上...un comment following......
// String urlstr="file:///D://a.jpg";
URL url = null;
try {
url = new URL(urlstr);
}
catch (MalformedURLException ex) {
}
ImageIcon icon = new ImageIcon(url);
//loadimage//
Image image = fr.getToolkit().getImage(url);
MediaTracker tracker = new MediaTracker(fr);
tracker.addImage(image, 0);
try {
tracker.waitForID(0);
}
catch (InterruptedException ie) {}
fr.getContentPane().setLayout(new GridLayout(2, 2));
fr.setSize(500, 600);
fr.getContentPane().add(new PaintPanel(image));
fr.getContentPane().add(new PaintPanel(urlstr));
fr.getContentPane().add(new PaintPanel(icon));
fr.getContentPane().add(new PaintPanel(url));
//this is a litter different...
JDialog dialog = new JDialog(fr, "GIFT-演示让图片成为背景", true);
//本机上的文件...
dialog.getContentPane().add(new PaintPanel(new File(filestr)));
dialog.setSize(200, 200);
fr.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
fr.setVisible(true);
dialog.setVisible(true);
fr.validate();
}
}