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