javax.swing

接口
异常
所有已知实现类:
JApplet, JDialog, JFrame, JInternalFrame, JWindow

public interface RootPaneContainer

此接口由具有单个 JRootPane 子组件的组件来实现,这些子组件包括:JDialog、JFrame、JWindow、JApplet、JInternalFrame。此接口中的方法仅为 JRootPane 属性的封面 (covers),例如,getContentPane() 通常按以下方法实现:

     public Container getContentPane() {
         return getRootPane().getContentPane();
     }
 
此接口用作 Swing GUI 生成器的 标记 (marker),这些生成器需要处理 JFrame 之类的组件,特别是包含单个 JRootPane 的组件。例如,在 GUI 生成器中,删除 RootPaneContainer 上的组件将被解释为 frame.getContentPane().add(child)

为了便于使用 JFrameJDialogJWindowJAppletJInternalFrame,默认情况下,将 addremovesetLayout 方法的所有调用转发到 contentPane。这意味着您可以调用:

 rootPaneContainer.add(component);
 
而不是:
 rootPaneContainer.getContentPane().add(component);
 

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

另请参见:
JRootPane, JFrame, JDialog, JWindow, JApplet, JInternalFrame

方法摘要
 Container getContentPane()
          返回 contentPane。
 Component getGlassPane()
          返回 glassPane。
 JLayeredPane getLayeredPane()
          返回 layeredPane。
 JRootPane getRootPane()
          返回此组件的单个 JRootPane 子组件。
 void setContentPane(Container contentPane)
          "contentPane" 是应用程序特定组件的主要容器。
 void setGlassPane(Component glassPane)
          glassPane 始终为 rootPane 的第一个子组件,rootPanes 布局管理器确保它始终与 rootPane 一样大。
 void setLayeredPane(JLayeredPane layeredPane)
          管理 contentPane 的 Container,在某些情况下为菜单栏。
 

方法详细信息

getRootPane

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

返回:
此组件的单个 JRootPane 子组件。
另请参见:
JRootPane

setContentPane

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

contentPane 不能为 null。

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

参数:
contentPane - 用于此 JRootPane 内容的 Container
抛出:
IllegalComponentStateException - (运行时异常)如果内容窗格参数为 null
另请参见:
JRootPane.getContentPane(), getContentPane()

getContentPane

Container getContentPane()
返回 contentPane。

返回:
contentPane 属性的值。
另请参见:
setContentPane(java.awt.Container)

setLayeredPane

void setLayeredPane(JLayeredPane layeredPane)
管理 contentPane 的 Container,在某些情况下为菜单栏。希望将子组件添加到不归布局管理的 RootPaneContainer 的后代可以使用 layeredPane。例如,内部对话框或拖放效果组件。

layeredPane 不能为 null。

通常使用以下方法实现

 
    getRootPane().setLayeredPane(layeredPane);

抛出:
IllegalComponentStateException - (一个运行时异常)如果分层窗格参数为 null
另请参见:
getLayeredPane(), JRootPane.getLayeredPane()

getLayeredPane

JLayeredPane getLayeredPane()
返回 layeredPane。

返回:
layeredPane 属性的值。
另请参见:
setLayeredPane(javax.swing.JLayeredPane)

setGlassPane

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

glassPane 不能为 null。

通常使用以下方法实现 getRootPane().setGlassPane(glassPane);

另请参见:
getGlassPane(), JRootPane.setGlassPane(java.awt.Component)

getGlassPane

Component getGlassPane()
返回 glassPane。

返回:
glassPane 属性的值。
另请参见:
setGlassPane(java.awt.Component)