如何将一个图片显示成为一个JFrame的背景

浏览:28日期:2023-02-11
内容: 个人的一点技巧总结,希望对大家能有所帮助.这段程序演示了如何载入图片的几种常用方法,并同时演示了如何让其作为JPanel的背景.1:package test.International.chinajavaworld;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(); }}2:package test.International.chinajavaworld;/** *

Title: PaintPanel

*

Description:此程序演示如何载入图片,并让其作为panel的背景

*

Copyright: Copyright (c) 2005

*

Company: gift2u

* @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); } }} Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd 个人的?
相关文章: