• JFrame包含的容器(JRootPane)


      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.

                                                                                            

  • 相关阅读:
    CF 120F Spider 树的直径 简单题
    POJ 1155 TELE 背包型树形DP 经典题
    CF 219D Choosing Capital for Treeland 树形DP 好题
    POJ 3162 Walking Race 树形DP+线段树
    HDU 2196 Computer 树形DP 经典题
    __str__()、__repr__()和__format__()
    item系列方法
    getattribute
    isinstance和issubclass
    继承方式完成包装
  • 原文地址:https://www.cnblogs.com/deltadeblog/p/7246988.html
Copyright © 2020-2023  润新知