JFrame窗格、设置背景图片

这篇博客探讨了如何在Java的JFrame窗格中设置背景图片,并解决了图片无法显示的问题。内容涉及JLayeredPane的使用,通过调整组件深度实现重叠效果。同时,文章还介绍了JFrame的组件层次结构,特别是ContentPane和JPanel的角色,以及如何在JPanel上应用FlowLayout布局管理器。此外,还提到了Java中setOpaque(false)方法的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

获取ContentPane强转为JPanel

        JPanel pan = (JPanel)jFrame.getContentPane();//强制转型,获得一个
        pan.setOpaque(false);//设置为透明

 添加bg路径;

同样放在一个位置,有的图片可以显示,有的不能:和尺寸、像素、格式、大小(kb)无关。

ImageIcon bg = new ImageIcon("D:/idea项目/librarysystem/src/images/0002.jpg");
//src/images/0002.jpg 相对路径;为什么0001.png不行?图片有区别吗?排除格式问题;注意路径不要打错
//D:\idea项目\librarysystem\src\images\0002.jpg 绝对路径;反斜杠要打两个\\表转义
//D:/idea项目/librarysystem/src/images/0002.jpg 绝对路径2

JLayeredPane 允许组件在需要时互相重叠
add前一个参数是组件,后一个参数是Integer对象,Integer指定容器中每个组件的深度,其中编号较高的组件位于其他组件之上。java关于JLayeredPane_百度知道 (baidu.com)

How to Use Layered Panes (The Java™ Tutorials > Creating a GUI With Swing > Using Swing Components) (oracle.com) 如下:

jFrame.getLayeredPane().add(label, Integer.valueOf(Integer.MIN_VALUE));
//将标签添加到分层面板最底层

jFrame.getLayeredPane().add(label,new Integer(Integer.MIN_VALUE));
//旧写法

把分层面板上的组件设置为流动布局

setLayout(new FlowLayout());
//将层面板的布局设置为flowlayout,面板上增加的组件默认是按照从左到右顺序排列

参考Java中JFrame窗口添加背景图和组件_哔哩哔哩_bilibili

参考JFrame,JPanel,JLabel详解_灰烬丶LORD的博客-CSDN博客_jpanel

参考JFrame的层次结构究竟是什么样的,什么又是ContentPane?_sofuzi的博客-CSDN博客_contentpane

参考java内容窗格与rootpane窗格关系_beifeng5620的博客-CSDN博客_getrootpane 

参考java jpanel的使用_JFrame的面板结构和JPanel的使用_KUBE蕉的博客-CSDN博客 √

参考Java setOpaque(false) 使用方法_乘风破浪的超峰的博客-CSDN博客 

参考Java图形化界面设计——布局管理器之FlowLayout(流式布局)_森林屿麓的博客-CSDN博客 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值