先写一个“画笔”类(在窗口中画出背景图片)
package background;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JPanel;
public class PictureJPanel extends JPanel {
/**
* 通过自己构建一个paint类,获取Image的对象,然后在窗口中添加背景(提前设置好大小)图片
*
*
*/
private static final long serialVersionUID = 1L;
private Image background;
public PictureJPanel(String path) {
background = ProjectUtil.getImage(path);// 图片的存放路径
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(background, 0, 0, null);
super.setVisible(true);
}
}
再写一个工具类,获取Image对象
package background;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
public class ProjectUtil {
private ProjectUtil() {
}
/**
* 返回指定路径文件的图片对象
*
* @param path
* @return
*/
public static Image getImage(String path) {// 图片的存放路径
BufferedImage bi = null;
try {
URL u = ProjectUtil.class.getClassLoader().getResource(path);
bi = ImageIO.read(u);
} catch (IOException e) {
e.printStackTrace();
}
return bi;
}
}
调用方法(在想要添加背景图片的窗口的“frame.setLayout(null);”语句上面添加以下代码)
PictureJPanel pj = new PictureJPanel("image/背景图片.jpg");// 图片存放路径
frame.repaint();
frame.add(pj);
pj.setVisible(true);
frame.setVisible(true);
frame.setLayout(null);