- 所有已知的实现类:
-
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)
。
作为便利,实现此接口的标准类(如JFrame
、JDialog
、JWindow
、JApplet
和JInternalFrame
)已经重写了它们的add
、remove
和setLayout
方法,以便它们委托调用到ContentPane
的相应方法。例如,您可以按如下方式向框架添加子组件:
frame.add(child);而不是:
frame.getContentPane().add(child);
JFrame
、JDialog
、JWindow
、JApplet
和JInternalFrame
的add
和setLayout
方法的行为由rootPaneCheckingEnabled
属性控制。如果此属性为true(默认值),则这些方法的调用将转发到contentPane
;如果为false,则这些方法直接在RootPaneContainer
上操作。此属性仅供子类使用,因此受保护。
- 自版本:
- 1.2
- 参见:
-
Method Summary
Modifier and TypeMethodDescription返回contentPane。返回glassPane。返回layeredPane。返回此组件的单个JRootPane子级。void
setContentPane
(Container contentPane) "contentPane"是应用程序特定组件的主要容器。void
setGlassPane
(Component glassPane) glassPane始终是rootPane的第一个子级,rootPane的布局管理器确保它始终与rootPane一样大。void
setLayeredPane
(JLayeredPane layeredPane) 管理contentPane和在某些情况下菜单栏的容器。
-
Method Details
-
getRootPane
JRootPane getRootPane()返回此组件的单个JRootPane子级。此接口的传统实现将所有其他方法间接通过此方法。rootPane有两个子级:glassPane和layeredPane。- 返回:
- 此组件的单个JRootPane子级。
- 参见:
-
setContentPane
"contentPane"是应用程序特定组件的主要容器。应用程序应向contentPane添加子级,设置其布局管理器等。contentPane不能为空。
通常使用
getRootPane().setContentPane(contentPane);
实现。- 参数:
-
contentPane
- 用于此JRootPane内容的容器 - 抛出:
-
IllegalComponentStateException
- (运行时异常),如果contentPane参数为null - 参见:
-
getContentPane
Container getContentPane()返回contentPane。- 返回:
- contentPane属性的值。
- 参见:
-
setLayeredPane
管理contentPane和在某些情况下菜单栏的容器。layeredPane可供希望向不受布局管理的RootPaneContainer添加子级的后代使用。例如,内部对话框或拖放效果组件。layeredPane不能为空。
通常使用
getRootPane().setLayeredPane(layeredPane);
- 参数:
-
layeredPane
- layered pane - 抛出:
-
IllegalComponentStateException
- (运行时异常),如果layered pane参数为null - 参见:
-
getLayeredPane
JLayeredPane getLayeredPane()返回layeredPane。- 返回:
- layeredPane属性的值。
- 参见:
-
setGlassPane
glassPane始终是rootPane的第一个子级,rootPane的布局管理器确保它始终与rootPane一样大。默认情况下,它是透明的且不可见。可以通过添加侦听器并使其可见来临时捕获所有键盘和鼠标输入。默认情况下,它是不可见的。glassPane不能为空。
通常使用
getRootPane().setGlassPane(glassPane);
实现。- 参数:
-
glassPane
- glass pane - 参见:
-
getGlassPane
Component getGlassPane()返回glassPane。- 返回:
- glassPane属性的值。
- 参见:
-