载入图片的几种常用方法/*** <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) { try { Image readImage = ImageIO.read(file); this.image = readImage; } catch (IOException ex) { } } /** * PaintPanel *外部给出string路径,通过Toolkit载入 * @param string String */ public PaintPanel(String string) { URL url = null; try { url = new URL(string); } catch (MalformedURLException ex) { } image = Toolkit.getDefaultToolkit().getImage(url); MediaTracker tracker = new MediaTracker(this); tracker.addImage(image, 0); try { tracker.waitForID(0); } catch (InterruptedException ie) { } } /** * PaintPanel *外部给出ImageIcon,利用ImageIcon载入 * @param icon ImageIcon */ public PaintPanel(ImageIcon icon) { this.image = icon.getImage(); } /** * PaintPanel * 外部给出URL,利用ImageIcon载入 * @param icon url */ public PaintPanel(URL url) { ImageIcon icon = new ImageIcon(url); this.image = icon.getImage(); } public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2d = (Graphics2D) g; if (image != null) { g2d.drawImage(image, 0, 0, this); } }} 测试代码: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(); }}: 运行图: 来源: 网上

评论