所有类


javax.swing
类 JRootPane

java.lang.Object
  继承者 java.awt.Component
      继承者 java.awt.Container
          继承者 javax.swing.JComponent
              继承者 javax.swing.JRootPane
所有已实现的接口:
ImageObserver, MenuContainer, Serializable, Accessible

public class JRootPane
   
   
   
   
extends JComponent
implements Accessible

该轻量级容器由 JFrameJDialogJWindowJAppletJInternalFrame 在后台使用。有关根窗格所提供功能的面向任务的信息,请参阅《The Java Tutorial》中的 How to Use Root Panes 一节。

下面的图像显示了使用根窗格的各个类之间的关系。

以下文本是对此图像的描述。

“重量级”组件(指委托给主机系统上的同位体或本地组件的组件)用较暗的、更重的框来显示。四个重量级 JFC/Swing 容器(JFrameJDialogJWindowJApplet)的显示与它们扩展的 AWT 类有关。这四个组件是 Swing 库中仅有的重量级容器。这里还显示了轻量级容器 JInternalPane。所有这五个 JFC/Swing 容器都实现 RootPaneContainer 接口,并且它们都将其操作委托给 JRootPane(顶端显示有一个小 "handle")。
注:使用 JComponentgetRootPane 方法可获取包含给定组件的 JRootPane
以下文本是对此图像的描述。
右图显示了 JRootPane 的结构。JRootpane 由一个 glassPane 和一个可选的 menuBar 以及一个 contentPane 组成。(JLayeredPane 负责管理 menuBarcontentPane。)glassPane 位于所有窗格之上,以便能够截取鼠标移动。由于 glassPane(与 contentPane 类似)可以是一个任意的组件,也可以设置 glassPane 来进行绘制。这样 glassPane 上的线条和图像可涵盖其下的窗体,不受其边界的限制。

尽管 menuBar 组件为可选,但 layeredPanecontentPaneglassPane 总是存在的。试图将它们设置为 null 将生成异常。

要将组件添加到 JRootPane(可选的菜单栏除外),您可以将对象添加到 JRootPanecontentPane,如下所示:

       rootPane.getContentPane().add(child);
 
可用同样的方法设置布局管理器、移除组件以及列出子级等。所有这些方法都是在 contentPane 上而不是 JRootPane 上调用的。
注:contentPane 的默认布局管理器是 BorderLayout 管理器。但是,JRootPane 使用一个自定义的 LayoutManager。所以,如果您希望更改已添加到 JRootPane 中的组件的布局管理器,一定要确保使用如下代码:
    rootPane.getContentPane().setLayout(new BoxLayout());
 
如果已在 JRootPane 上设置了 JMenuBar 组件,它将沿窗体的上边缘放置。contentPane 的位置和大小将进行调整以填充剩余的区域。(JMenuBarcontentPane 被添加到位于 JLayeredPane.FRAME_CONTENT_LAYER 层的 layeredPane 组件中。)

layeredPaneJRootPane 中所有子级的父级,既是菜单的直接父级,又是添加到 contentPane 中的所有组件的祖父级。它是 JLayeredPane 的实例,提供在若干层上添加组件的能力。在处理弹出菜单、对话框以及拖动时,即要求将组件置于窗格中所有其它组件之上的情况下,此功能非常有用。

glassPane 位于 JRootPane 中所有其它组件之上。这为在所有其它组件上绘图和截取鼠标事件提供了方便,这对拖动和绘图都非常有用。开发人员可在 glassPane 上使用 setVisible 控制 glassPane 在所有其它子级上面显示的时间。默认情况下,glassPane 为不可见。

JRootPane 所使用的自定义 LayoutManager 可确保:

  1. glassPane 填充了 JRootPane 的整个可查看区域(边界 - insets)。
  2. layeredPane 填充了 JRootPane 的整个可查看区域。(边界 - insets)
  3. menuBar 位于 layeredPane 的上边缘。
  4. contentPane 填充了整个可查看区域,减去 menuBar(如果有)。
JRootPane 视图层次结构中的任何其它视图均忽略。

如果您替换 JRootPaneLayoutManager,您将负责管理所有这些视图。所以通常情况下,应该确保更改的是 contentPane 的布局管理器,而不是 JRootPane 自身的布局管理器。

Swing 的绘制架构要求在所有其它组件之上的包含层次结构中有一个不透明的 JComponent。这通常通过使用内容窗格来实现。如果要替换内容窗格,建议使用 setOpaque(true) 将内容窗格设置为不透明。另外,如果内容窗格重写 paintComponent,还需要在 paintComponent 中用不透明颜色将背景完全填充。

警告:此类的序列化对象将与以后的 Swing 版本不兼容。当前的序列化支持适用于短期存储或运行相同 Swing 版本的应用程序之间的 RMI。从 1.4 版本开始,已在 java.beans 包中添加了支持所有 JavaBeansTM 长期存储的功能。请参阅 XMLEncoder

另请参见:
JLayeredPane, JMenuBar, JWindow, JFrame, JDialog, JApplet, JInternalFrame, JComponent, BoxLayout, Mixing Heavy and Light Components

嵌套类摘要
protected  classJRootPane.AccessibleJRootPane
          此类实现对 JRootPane 类的可访问性支持。
protected  classJRootPane.RootLayout
          该自定义布局管理器负责 layeredPane、glassPane 和 menuBar 的布局。
 
从类 javax.swing.JComponent 继承的嵌套类/接口
JComponent.AccessibleJComponent
 
从类 java.awt.Container 继承的嵌套类/接口
Container.AccessibleAWTContainer
 
从类 java.awt.Component 继承的嵌套类/接口
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
字段摘要
static intCOLOR_CHOOSER_DIALOG
          供 windowDecorationStyle 属性使用的常量。
protected  ContainercontentPane
          内容窗格。
protected  JButtondefaultButton
          当窗格成为焦点并有类似按下 Enter 键的特定于 UI 的操作发生时被激活的按钮。
protected  javax.swing.JRootPane.DefaultActiondefaultPressAction
          已过时。 从 Java 2 platform v1.3 开始
protected  javax.swing.JRootPane.DefaultActiondefaultReleaseAction
          已过时。 从 Java 2 platform v1.3 开始
static intERROR_DIALOG
          供 windowDecorationStyle 属性使用的常量。
static intFILE_CHOOSER_DIALOG
          供 windowDecorationStyle 属性使用的常量。
static intFRAME
          供 windowDecorationStyle 属性使用的常量。
protected  ComponentglassPane
          覆盖菜单栏和内容窗格的玻璃窗格,便于截取鼠标移动等操作。
static intINFORMATION_DIALOG
          供 windowDecorationStyle 属性使用的常量。
protected  JLayeredPanelayeredPane
          管理菜单栏和内容窗格的分层窗格。
protected  JMenuBarmenuBar
          菜单栏。
static intNONE
          供 windowDecorationStyle 属性使用的常量。
static intPLAIN_DIALOG
          供 windowDecorationStyle 属性使用的常量。
static intQUESTION_DIALOG
          供 windowDecorationStyle 属性使用的常量。
static intWARNING_DIALOG
          供 windowDecorationStyle 属性使用的常量。
 
从类 javax.swing.JComponent 继承的字段
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
从类 java.awt.Component 继承的字段
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
从接口 java.awt.image.ImageObserver 继承的字段
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
构造方法摘要
JRootPane()
          创建 JRootPane,设置其 glassPanelayeredPane 以及 contentPane
 
方法摘要
protected  voidaddImpl(Component comp, Object constraints, int index)
          重写以便将玻璃组件的位置强行设置成零位子级。
 voidaddNotify()
          将本身注册为 SystemEventQueueUtils 的新的根窗格。
protected  ContainercreateContentPane()
          由构造方法调用以便创建默认的 contentPane
protected  ComponentcreateGlassPane()
          由构造方法调用以便创建默认的 glassPane
protected  JLayeredPanecreateLayeredPane()
          由构造方法调用以便创建默认的 layeredPane
protected  LayoutManagercreateRootLayout()
          由构造方法调用以便创建默认的 layoutManager
 AccessibleContextgetAccessibleContext()
          获得与此 JRootPane 相关联的 AccessibleContext
 ContainergetContentPane()
          返回内容窗格,它是保存以根窗格为父级的组件的容器。
 JButtongetDefaultButton()
          返回 defaultButton 属性的值。
 ComponentgetGlassPane()
          返回此 JRootPane 的当前玻璃窗格。
 JMenuBargetJMenuBar()
          返回窗格层的菜单栏。
 JLayeredPanegetLayeredPane()
          获取供根窗格使用的分层窗格。
 JMenuBargetMenuBar()
          已过时。 从 Swing 版本 1.0.3 开始,由 getJMenubar() 取代。
 RootPaneUIgetUI()
          返回呈现此组件的 L&F 对象。
 StringgetUIClassID()
          返回一个指定呈现此组件的 L&F 类名称的字符串。
 intgetWindowDecorationStyle()
          返回一个常量,它标识 JRootPane 提供的 Window 装饰类型。
 booleanisOptimizedDrawingEnabled()
          glassPanecontentPane 具有相同的边界,这意味着 JRootPane 并不对其子级平铺,应返回 false。
 booleanisValidateRoot()
          如果此 JRootPane 的一个后代调用 revalidate,将从此位置开始进行验证。
protected  StringparamString()
          返回此 JRootPane 的字符串表示形式。
 voidremoveNotify()
          将本身从 SystemEventQueueUtils 注销。
 voidsetContentPane(Container content)
          设置内容窗格,它是保存以根窗格为父级的组件的容器。
 voidsetDefaultButton(JButton defaultButton)
          设置 defaultButton 属性,它确定此 JRootPane 的当前默认按钮。
 voidsetGlassPane(Component glass)
          将指定的 Component 设置为此根窗格的玻璃窗格。
 voidsetJMenuBar(JMenuBar menu)
          添加或更改在分层窗格中使用的菜单栏。
 voidsetLayeredPane(JLayeredPane layered)
          设置供根窗格使用的分层窗格。
 voidsetMenuBar(JMenuBar menu)
          已过时。 从 Swing 版本 1.0.3 开始,由 setJMenuBar(JMenuBar menu) 取代。
 voidsetUI(RootPaneUI ui)
          设置呈现此组件的 L&F 对象。
 voidsetWindowDecorationStyle(int windowDecorationStyle)
          设置 JRootPane 应提供的 Window 装饰类型(例如,边界、关闭 Window 的小部件、标题等)。
 voidupdateUI()
          将 UI 属性重置为当前外观对应的值。
 
从类 javax.swing.JComponent 继承的方法
addAncestorListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isPaintingTile, isRequestFocusEnabled, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
从类 java.awt.Container 继承的方法
add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
从类 java.awt.Component 继承的方法
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

字段详细信息

NONE

public static final int NONE
供 windowDecorationStyle 属性使用的常量。指示 JRootPane 不应提供任何类型的 Window 装饰。

从以下版本开始:
1.4
另请参见:
常量字段值

FRAME

public static final int FRAME
供 windowDecorationStyle 属性使用的常量。指示 JRootPane 应提供适合 Frame 的装饰。

从以下版本开始:
1.4
另请参见:
常量字段值

PLAIN_DIALOG

public static final int PLAIN_DIALOG
供 windowDecorationStyle 属性使用的常量。指示 JRootPane 应提供适合 Dialog 的装饰。

从以下版本开始:
1.4
另请参见:
常量字段值

INFORMATION_DIALOG

public static final int INFORMATION_DIALOG
供 windowDecorationStyle 属性使用的常量。指示 JRootPane 应提供适合 Dialog 的装饰以便显示一条报告消息。

从以下版本开始:
1.4
另请参见:
常量字段值

ERROR_DIALOG

public static final int ERROR_DIALOG
供 windowDecorationStyle 属性使用的常量。指示 JRootPane 应提供适合 Dialog 的装饰以便显示一条错误消息。

从以下版本开始:
1.4
另请参见:
常量字段值

COLOR_CHOOSER_DIALOG

public static final int COLOR_CHOOSER_DIALOG
供 windowDecorationStyle 属性使用的常量。指示 JRootPane 应提供适合 Dialog 的装饰以便显示 JColorChooser

从以下版本开始:
1.4
另请参见:
常量字段值

FILE_CHOOSER_DIALOG

public static final int FILE_CHOOSER_DIALOG
供 windowDecorationStyle 属性使用的常量。指示 JRootPane 应提供适合 Dialog 的装饰以便显示 JFileChooser

从以下版本开始:
1.4
另请参见:
常量字段值