通过JLayeredPane实现背景图上添加其他控件

JLayeredPane为容器添加了深度,允许组件在需要时互相重叠。

JLayeredPane将深度范围按 层 划分,在同一层内又对组件按位置进一步划分,将组件放入容器时需要指定组件所在的层,以及组件在该层内的 位置

通过 setLayer(Component c, int layer) 可设置组件所在的层数。
在JLayeredPane类中,共定 义了6个Z_order常数供用户参考,如下所示:

DEFAULT_LAYER:Z_order的Layer数值为0,以整数对象Integer(0)来表示,一般我们加入的组件若没有标记是第几层,默认值就 把组件放在此Default Layer中。

PALETTE_LAYER:Z_order的Layer数值为100,以整数对象Integer(100)来表示,位于Default Layer之上,一般用于放置可移动的 工具栏(Floatable Toolbar).

MODAL_LAYER:Z_order的Layer数值为200,以整数对象Integer(200)来表示,位于PALETTE_LAYER之上,一般用于放置对话框 (Dialog Box).

POPUP_LAYER:Z_order的Layer数值为300,以整数对象Integer(300)来表示,位于MODAL_LAYER之上,一般用于快捷菜单(Poup Menu)与工具栏提示(Tool Tips)中.

DRAG_LAYER:Z_order的Layer数值为400,以整数对象Integer(400)来表示,位于POPUP_LAYER之上,一般用于拖曳组件使其在不同 区域上.

FRAME_CONTENT_LAYER:Z_order的Layer数值为-30000,以整数对象Integer(-30000)来表示,一般来说,Frame Content Layer 最底层的是Layer,用来表示Content Pane与Menu Bar的位置,大部份情况我们不会更改到这个数值。

参考代码:

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;public class Example extends JFrame{public Example() {JLayeredPane layeredPane=new JLayeredPane(); //实例化JLayeredPane容器ImageIcon image=new ImageIcon("image/background.png");//背景图片JLabel jl=new JLabel(image); //图片添加到labeljl.setBounds(0,0,image.getIconWidth(),image.getIconHeight());//设置容器大小和位置  JButton jb1=new JButton("按钮");//按钮jb1.setBounds(200,350,100,50);//设置按钮大小和位置layeredPane.add(jl,JLayeredPane.DEFAULT_LAYER); //将jl放到最底层layeredPane.add(jb1,JLayeredPane.MODAL_LAYER); //将jb1放到高一层的地方this.setLayeredPane(layeredPane); //窗体设置JLayeredPane容器this.setSize(image.getIconWidth(),image.getIconHeight());//窗体大小this.setLocationRelativeTo(null);//窗体居中this.setTitle("案例");//窗体标题this.setVisible(true);//窗体可视}public static void main(String[] args) {// TODO Auto-generated method stubExample example=new Example();}
}

代码运行后的效果图

如有错误
欢迎指出

java 通过JLayeredPane实现背景图上添加其他控件相关推荐

  1. java原生的Graphics2D_背景图上添加图片

    1.初始化 public void init(){private String backgroundImgPath="背景图片位置";private String contentI ...

  2. QT上设置背景图不影响子控件以及按钮控件的透明化

    QT中设置背景图不影响子控件 QT中设置背景图的方法不少,我这里是直接使用stylesheet来设置背景图.如果直接在UI界面进行如下所示设置 border-image: url(:/resource ...

  3. 在GLSurfaceView上添加Layout控件(android)

    查找了很久,才找出在GLSurfaceView上添加控件的方法.废话不说,本例实现了一个Native opengl es 程序,绘制了一个旋转三角形:当然主题是在GLSurfaceView上添加Lay ...

  4. 【转载】SAP OO ALV 在自定义屏幕上添加ALV控件 一个屏幕上使用2个ALV

    终于完成了 OO ALV的学习,第一个作品. 一个屏幕上放了2个ALV控件,上面用来显示表头,下面用来显示详细的行项目. 业务背景: 在汽车的售后服务环节,汽车零件在质保期内损坏,维修产生的费用,整车 ...

  5. layui table工具栏点击时间_layui table表格上添加日期控件laydate

    方法:标红的地方是关键,经测试不要 data_field:'velappr' 也能用. tatable.render({ id:'idTest' ,elem: '#dict' ,page: true, ...

  6. svg添加html控件,SVG中嵌入HTML元素

    .clsfont{ border:1px solid #ccc;background:#fff;line-height:37px;color:#999;font-size:14px;text-alig ...

  7. JAVA GUI界面动态背景图设计

    在做JAVA项目时我们有时候要用到界面的动态背景,但是对于初学者来说通常会使用普通的IO流来设置背景图片,但这往往会出问题的,要么找不到路径,要么动态背景图片设置不成功(动态图片变成静态图片),下面我 ...

  8. c#图像处理、图片拼接、图片裁剪、图片缩放、图上添加形状、屏幕截图、图片反色、改变图片色彩度全解

    全栈工程师开发手册 (作者:栾鹏) c#教程全解 using System; using System.Collections.Generic; using System.ComponentModel ...

  9. PHP将图片和文字合成到一张背景图上

    PHP将图片和文字合成到一张背景图上 /*** 将两张图片合成一张* $bg_path 背景图地址* $poster 图片2* $x 图片2在背景图片上位置的左边距,单位:px (例:436)* $y ...

最新文章

  1. asp.net利用RAR实现文件压缩解压缩【月儿原创】
  2. iOS开发之窥探UICollectionViewController(四) --一款功能强大的自定义瀑布流
  3. efcore调用函数_EFCore执行Sql语句的方法:FromSql与ExecuteSqlCommand
  4. JavaScript 同时建立多个websocket连接
  5. 学会使用svn:externals
  6. looper message handler之间的关系
  7. jQuery遍历div,判断是否为空,为空时执行某个操作
  8. linux java输出到文件,linux java输出到文件内容
  9. UML-基于GRASP对象设计步骤
  10. html5 graphics with svg css3,Using SVG with CSS3 and HTML5: Vector Graphics for Web Design
  11. 吴恩达机器学习作业3.2神经网络
  12. 微博图片设计模板素材推荐 精品 小众
  13. 第一周礼拜五 神借着祂的众仆人行事(下)
  14. 云端应用典型应用场景
  15. CAD绘制填充,从中间挖去一块(网页版)
  16. Day03 BSP工程师小白的第一步-------今天开始正式学C语言
  17. Mysql 增量备份和全量备份
  18. Android Connectivity分析(1)- ConnectivityManager
  19. 国际战略中aaa模式_AAA游戏中的微交易将继续存在(但仍然很糟糕)
  20. oracle 日志 aw,DBMS_AW_EXP: not AW$

热门文章

  1. POJ 1159 - Palindrome 优化空间LCS
  2. 工程日志(110316)-机房内电子信息设备电量估算
  3. 陈年牵手徐静蕾之一箭双雕
  4. 解决Redis缓存雪崩、穿透、并发、预热、击穿、热点Key等问题
  5. 在并发情况下,Elasticsearch 如果保证读写一致?
  6. 360私有云平台Elasticsearch服务初探
  7. go 根据输入类型执行对应的方法_Go 每日一库之 sqlc
  8. 源码剖析 Netty 服务启动 NIO
  9. 高性能可扩展mysql-数据库设计规范
  10. springboot防止XSS攻击和sql注入