Module  java.desktop
软件包  javax.swing

Interface RootPaneContainer

  • 所有已知实现类:
    JAppletJDialogJFrameJInternalFrameJWindow


    public interface RootPaneContainer
    该接口由具有单个JRootPane子组件的组件实现:JDialog,JFrame,JWindow,JApplet,JInternalFrame。 该接口中的方法只是JRootPane属性的覆盖 ,例如getContentPane()通常是这样实现的:
      public Container getContentPane() {
             return getRootPane().getContentPane();
         } 
    此界面作为Swing GUI构建器的标记 ,需要特别处理包含单个JRootPane的组件,如JFrame。 例如,在GUI构建器中,将RootPaneContainer上的组件删除将被解释为frame.getContentPane().add(child)

    为方便起见,实现这个接口标准的类(例如JFrameJDialogJWindowJAppletJInternalFrame )具有它们addremovesetLayout方法覆盖,以使它们委托给的相应方法的调用ContentPane 例如,您可以将子组件添加到框架中,如下所示:

      frame.add(child); 
    代替:
      frame.getContentPane().add(child); 

    的行为addsetLayout方法JFrameJDialogJWindowJAppletJInternalFrame由控制rootPaneCheckingEnabled财产。 如果此属性为true(默认值),则调用这些方法将转发到contentPane ; 如果是虚假的,这些方法直接在RootPaneContainer上操作。 此属性仅适用于子类,因此受保护。

    从以下版本开始:
    1.2
    另请参见:
    JRootPaneJFrameJDialogJWindowJAppletJInternalFrame
    • 方法详细信息

      • getRootPane

        JRootPane getRootPane​()
        返回此组件的单个JRootPane小孩。 这种接口的常规实现将通过这一接口间接地实现所有其他方法。 rootPane有两个孩子:glassPane和layeredPane。
        结果
        这个组件单JRootPane小孩。
        另请参见:
        JRootPane
      • setContentPane

        void setContentPane​(Container contentPane)
        “contentPane”是应用程序特定组件的主容器。 应用程序应该将children添加到contentPane,设置其布局管理器等等。

        contentPane可能不为null。

        一般用getRootPane().setContentPane(contentPane);实现

        参数
        contentPane - 用于此JRootPane内容的容器
        异常
        IllegalComponentStateException - (运行时异常)如果内容窗格参数为空
        另请参见:
        JRootPane.getContentPane()getContentPane()
      • setLayeredPane

        void setLayeredPane​(JLayeredPane layeredPane)
        管理contentPane的容器,在某些情况下是一个菜单栏。 可以使用layeredPane,以便将子节点添加到未布局管理的RootPaneContainer中。 例如内部对话框或拖放效果组件。

        layeredPane可能不为空。

        一般实行

          getRootPane().setLayeredPane(layeredPane); 
        参数
        layeredPane - 分层窗格
        异常
        IllegalComponentStateException (如果分层窗格参数为空,则为运行时异常)
        另请参见:
        getLayeredPane()JRootPane.getLayeredPane()
      • setGlassPane

        void setGlassPane​(Component glassPane)
        glassPane始终是rootPane的第一个孩子,rootPane布局管理器确保它始终与rootPane一样大。 默认情况下,它是透明的,不可见。 它可以用来临时抓住所有的键盘和鼠标输入添加听众,然后使其可见。 默认情况下,它不可见。

        glassPane可能不为空。

        一般用getRootPane().setGlassPane(glassPane);实现

        参数
        glassPane - 玻璃窗
        另请参见:
        getGlassPane()JRootPane.setGlassPane(java.awt.Component)