Swing界面——给窗体添加背景图片

       给窗体添加背景图片,为了不影响其他组件的添加,所以要将背景图片添加到面板的最底层。大体思路如下:

       首先,要有一个图片,根据图片所在路径实例化一个图片图标(ImageIcon)的对象

              ImageIcon image=new ImageIcon(this.getClass().getResource(“图片”));
       这里的this.getClass().getResource("图片")是为了方便在转换成其他形式时仍然可以使用该图片。要注意的的是这里的图片只是一种资源,我们无法无法直接对其进行处理,这时就需要一个载体(组件)来承载。我们可以选择JLable(标签)来作为载体,实例化一个JLable对象label后,用setIcon()方法来将图片添加到标签上。

       接下来就是把组件label添加到窗体最底层上。要添加到最底层,首先要获取窗体的深度,

(注意: LayeredPane默认为空布局,在空布局的情况下,要想显示组件,必须设置组件的大小和位置。

以下三种方法只能在空布局情况下使用:setBounds( , , , )/setLocation( ,)/setSize( ,))
得到界面的深度后,再用add方法添加图片。
       图片添加完成后,运行时并不能显示出来,因为承载图片的组件是添加到最底层的,其他层会覆盖掉该图片,所以要将其他层设为透明才可以显示背景图片。在设置透明前,首先要获取窗体的内容面板

Container panel=this.getContentPane();此时面板的类型是Container,该类型不包含setOpaque()方法,所以可以通过强制转型将其转为JPanel类型的就可以使用该方法将内容面板设为透明(注意:强制转型的类型间要满足一定的条件,即它们必须有相同的父类)
代码流程如下:

ImageIcon image=new ImageIcon(this.getClass().getResource("66.png"));


JLabel label=new JLabel();
  
  
label.setIcon(image);


label.setBounds(0, 0, 600, 600);



this.getLayeredPane().add(label,new Integer(Integer.MIN_VALUE));

Container panel=this.getContentPane();

((JPanel)panel).setOpaque(false);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值