载入图片的几种常用方法
/** * <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(); } }