JFrame包含的容器(JRootPane)

摘要:
此对象包含JRootPane类型的容器。主要功能是捕获JFrame上的任何事件。我们通常将组件放置在ContentPane上,因为如果将组件添加到分层窗格中,则必须自己管理组件之间的层次关系。如果将组件放入ContentPane,Java将自动加快其层次关系。JFrame中有一些方法可以获取这些容器。

  JFrame对象创建后,此对象包含JRootPane类型的容器。JRootPane 下有GlassPane,  和  LayeredPane,LayeredPane下又有ContentPane ,   Menu Bar。

包含结构如下:

           JRootPane
              --Glass Pane
              --Layered Pane
                 --Content Pane
                 --Menu Bar

  由上面的结构树,我们可以看到JRootPane包含有Glass Pane 与 Layered Pane,而Layered Pane又包含有Content Pane与Menu Bar,其中程序设计者可选择是否使用Menu Bar,若没有使用Menu Bar,则Content Pane就会占据整个版面。

Glass Pane:它是一个透明的面版,主要功能是它或以捕获JFrame上的任何事件。GlassPane的默认值是不可看见的,不过可以将它设为看见的(visible),例如若要在GlassPane上做绘图的工作,就可以在Glass Pane上显示出来!

Layered Pane:它是一个可以重叠组件的面版,本身就是一个容器,可以将它看成是相当多层的置物架,每一层都可以放置物品,而且上面的物品会遮隹下面的物品。

Content Pane:是最重要的,且是最常到的容器。它是LayeredPane 中的一层,一般视为最底层。通常我们会将组件放在ContentPane上,而不会加在LayeredPane中,因为若将组件加入LayeredPane中必须自选管理组件间层次的关系,这会加重程序维护的困难度。苦将组件放入ContentPane,对于像工具栏(ToolBar),PopupMenu等组件,Java会自动高速其层次关系。

JFrame中带有一些方法可以获取这些容器,如:

getRootPane(),getGlassPane(),getLayeredPane(),getContentPane(),getMenuPane()

jframe.getRootPane().getLayeredPane() == jframe.getLayeredPane()  结果为true,左右两边都指向同一个对象。

 

		System.out.println(jframe.getContentPane() == jframe.getRootPane().getContentPane());
		System.out.println(jframe.getRootPane().getGlassPane() == jframe.getGlassPane());
		System.out.println(jframe.getRootPane().getLayeredPane() == jframe.getLayeredPane());
		System.out.println(jframe.getRootPane().getJMenuBar() == jframe.getJMenuBar());

输出结果都是true

jframe.getRootPane().getLayeredPane()            Gets the layered pane used by the root pane. The layered pane                                                                                           typically holds a content pane and an optional JMenuBar.

                                                                                        

免责声明:文章转载自《JFrame包含的容器(JRootPane)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Visual Studio 2015里面汇编工具Asm Dude的配置!MSP430F149的存储器结构及FLASH读写下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Docker从入门到放弃

  为什么要学习 docker 呢?深有体会,由于一些原因只能在他人电脑上搭建环境,明明在自己电脑上的程序跑的好好的,在他人的电脑上就是死活出错。折磨人呀!!!!!可是能怎么办,工作还得继续,曲线救国呗,折腾了一天终于搞好了,那么以后呢?想到了之前搭建靶机时候用到的docker,时间长了也忘了,准备好好梳理学习入门一波。《十分感谢大神的文章,本文基于大神的...

Docker安装各种服务

一. centos7设置固定IP 查看当前正在使用的网络情况 [root@localhost ~]# nmcli dev status 显示情况 : DEVICE TYPE     STATE   CONNECTION ens33   ethernet 连接的   ens33      lo     loopback 未托管   --  ...

Win7下安装SQL Server 2005遇到的问题

-COM+ 目录要求(警告) 消息 COM+ 目录要求 如果SQL Server安装程序失败,安装程序将回滚所安装的系统,但可能不会删除所有.manifest文件。解决方法是重命名这些文件,然后重新运行安装程序。 有关详细信息,请参阅“如何处理SQL Server安装过程中的COM+检查失败问题”。   此时需要重新安装COM+,具体安装步骤如下: 1)在...

Docker-Bridge Network 03 自定义网络

本节介绍自定义bridge network的自定义网络。 1.前言2.创建自定义网络2.1 创建网络2.2 指定网段创建网络3.创建容器3.1 指定网络创建容器3.2 指定IP创建容器4.通信4.1 不同bridge之间是网络隔离的4.2 不同bridge上的容器如何通信4.3 原理5.小结 1.前言   前两节,我们创建的容器默认使用了bridge n...

禁用SQL Server的SSRS日志追踪-防止Windows 磁盘被占满

最近一段时间,突然C盘 莫名奇妙的满了 ,也没有中毒。 最后查找是因为安装了SQL 2017  Reporting  的原因 C:Program FilesMicrosoft SQL Server Reporting ServicesSSRS 下的LogFiles 文件夹占用了我130多个G的磁盘。 禁用SQL Server的SSRS日志追踪 配置文件地...

1.docker简介及安装

一、 docker简介    1. Docker是什么?            Docker的英文本意是“搬运工”,在程序员的世界里,Docker搬运的是集装箱(Container),集装箱里装的是任 意类型的App,开发者通过Docker可以将App变成一种标准化的、可移植的、自管理的组件,可以在任何主流 系统中开发、调试和运行。 说白了,docker是...