由于在网上查询的方法众多,而且方法有的地方复杂化,其实不用特别复杂编写代码,只要关键点的地方写对了,就可以运行。
此写法本人整理了网上思路编写,简单明了~~~!
/**
* 自定义背景图片,重绘JPanel面板的paintComponent(Graphics g)类
*/
class BackgroundPanel extends JPanel {
private static final long serialVersionUID = 1L;
String name = "01.JPG"; // 将图片放在class类的同级文件夹里
protected void paintComponent(Graphics g) { //关键代码:重写绘制组件外观
super.paintComponent(g);
ImageIcon image = new ImageIcon(getClass().getResource(name)); // 获取图片路径
g.drawImage(image.getImage(), 0, 0, 350, 350, null);// 绘制图片与组件大小相同
}
}
public class BackgroundPanelClass extends JFrame {
private static final long serialVersionUID = 1L;
JPanel contentPan; // 放背景面板的面板
public BackgroundPanelClass() {
this.setTitle("自定义背景图片");
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setBounds(400, 250, 350, 350);
contentPan = new JPanel();
contentPan.setLayout(new BorderLayout(0, 0));// 设置边界布局
BackgroundPanel backgroundPanel = new BackgroundPanel(); // 创建背景面板
contentPan.add(backgroundPanel);// 添加背景面板
this.setContentPane(contentPan);
}
public static void main(String[] args) {
new BackgroundPanelClass();
}
}
效果图:
一张养眼的背景面板就被添加进去啦~如果要在背景面板上添加组件,要在BackgroundPanel类里写入构造方法进行添加。
图片存放路径:
需要放在类同级文件夹下面