Module java.desktop
Package javax.swing

Interface RootPaneContainer

所有已知的实现类:
JApplet, JDialog, JFrame, JInternalFrame, JWindow

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

作为便利,实现此接口的标准类(如JFrameJDialogJWindowJAppletJInternalFrame)已经重写了它们的addremovesetLayout方法,以便它们委托调用到ContentPane的相应方法。例如,您可以按如下方式向框架添加子组件:

       frame.add(child);
 
而不是:
       frame.getContentPane().add(child);
 

JFrameJDialogJWindowJAppletJInternalFrameaddsetLayout方法的行为由rootPaneCheckingEnabled属性控制。如果此属性为true(默认值),则这些方法的调用将转发到contentPane;如果为false,则这些方法直接在RootPaneContainer上操作。此属性仅供子类使用,因此受保护。

自版本:
1.2
参见:
  • Method Details

    • getRootPane

      JRootPane getRootPane()
      返回此组件的单个JRootPane子级。此接口的传统实现将所有其他方法间接通过此方法。rootPane有两个子级:glassPane和layeredPane。
      返回:
      此组件的单个JRootPane子级。
      参见:
    • setContentPane

      void setContentPane(Container contentPane)
      "contentPane"是应用程序特定组件的主要容器。应用程序应向contentPane添加子级,设置其布局管理器等。

      contentPane不能为空。

      通常使用getRootPane().setContentPane(contentPane);实现。

      参数:
      contentPane - 用于此JRootPane内容的容器
      抛出:
      IllegalComponentStateException - (运行时异常),如果contentPane参数为null
      参见:
    • getContentPane

      Container getContentPane()
      返回contentPane。
      返回:
      contentPane属性的值。
      参见:
    • setLayeredPane

      void setLayeredPane(JLayeredPane layeredPane)
      管理contentPane和在某些情况下菜单栏的容器。layeredPane可供希望向不受布局管理的RootPaneContainer添加子级的后代使用。例如,内部对话框或拖放效果组件。

      layeredPane不能为空。

      通常使用

          getRootPane().setLayeredPane(layeredPane);
      参数:
      layeredPane - layered pane
      抛出:
      IllegalComponentStateException - (运行时异常),如果layered pane参数为null
      参见:
    • getLayeredPane

      JLayeredPane getLayeredPane()
      返回layeredPane。
      返回:
      layeredPane属性的值。
      参见:
    • setGlassPane

      void setGlassPane(Component glassPane)
      glassPane始终是rootPane的第一个子级,rootPane的布局管理器确保它始终与rootPane一样大。默认情况下,它是透明的且不可见。可以通过添加侦听器并使其可见来临时捕获所有键盘和鼠标输入。默认情况下,它是不可见的。

      glassPane不能为空。

      通常使用getRootPane().setGlassPane(glassPane);实现。

      参数:
      glassPane - glass pane
      参见:
    • getGlassPane

      Component getGlassPane()
      返回glassPane。
      返回:
      glassPane属性的值。
      参见: