我们通过设置背景图片所在的层次来达到这个效果。
- 先创建一个JLable
l
来存放背景图片。 - 创建一个JPanel
p
作为中间面板,来添加l
。 - 再创建一个JLayeredPane
lp
来添加面板p,并将它设置在最底层DEFAULT_LAYER
- 最后在JFrame
f
中,设置LayeredPane属性为lp
。
代码:
JFrame f = new JFrame();
JLayeredPane lp = new JLayeredPane();
JPanel jp = new JPanel();
JLabel l = new JLabel();
ImageIcon img = new ImageIcon("src");
f.setSize(width,height);
f.setLocationRelativeTo(null);
f.setLayout(null);
l.setIcon(img);
jp.setBounds(0,0,img.getIconWidth(),img.getIconHeight());
jp.add(l);
lp.add(jp,JLayeredPane.DEFAULT_LAYER);
f.setLayeredPane(lp);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
JLayeredPane 常见的几个层如下图:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a3815bc9e8fe3476f460d5e506f630a0.png)