- 所有已实现的接口:
-
ImageObserver
,MenuContainer
,Serializable
- 直接已知的子类:
-
BasicSplitPaneDivider
,CellRendererPane
,DefaultTreeCellEditor.EditorContainer
,JComponent
,Panel
,ScrollPane
,Window
添加到容器中的组件将被跟踪在一个列表中。列表的顺序将定义容器内组件的前后堆叠顺序。如果在向容器添加组件时未指定索引,则将其添加到列表的末尾(因此添加到堆叠顺序的底部)。
- 自:
- 1.0
- 另请参阅:
-
Nested Class Summary
Modifier and TypeClassDescriptionprotected class
Container的内部类,用于提供对辅助功能的默认支持。Nested classes/interfaces declared in class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Field Summary
Fields declared in class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Fields declared in interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescription将指定的组件附加到此容器的末尾。将指定的组件添加到此容器的指定位置。void
将指定的组件添加到此容器的末尾。void
将指定的组件以指定的约束条件添加到此容器的指定索引处。将指定的组件添加到此容器。void
将指定的容器监听器添加到此容器以接收来自此容器的容器事件。protected void
将指定的组件添加到此容器的指定索引处。void
通过将其连接到本机屏幕资源,使此Container可显示。void
向监听器列表添加一个PropertyChangeListener。void
addPropertyChangeListener
(String propertyName, PropertyChangeListener listener) 向特定属性的监听器列表添加一个PropertyChangeListener。void
设置此容器及其内部所有组件的ComponentOrientation
属性。boolean
areFocusTraversalKeysSet
(int id) 返回是否已为此Container明确定义了给定焦点遍历操作的焦点遍历键集。int
已弃用。JDK版本1.1后已被getComponentCount()取代。void
已弃用。JDK版本1.1后已被dispatchEvent(AWTEvent e)
取代。void
doLayout()
使此容器布局其组件。findComponentAt
(int x, int y) 定位包含指定位置的可见子组件。定位包含指定点的可见子组件。float
返回沿x轴的对齐方式。float
返回沿y轴的对齐方式。getComponent
(int n) 获取此容器中的第n个组件。getComponentAt
(int x, int y) 定位包含x、y位置的组件。获取包含指定点的组件。int
获取此面板中的组件数。获取此容器中的所有组件。int
getComponentZOrder
(Component comp) 返回容器中组件的z顺序索引。返回在此容器上注册的所有容器监听器的数组。getFocusTraversalKeys
(int id) 返回此Container的给定遍历操作的焦点遍历键集。返回将管理此Container的子级键盘遍历的焦点遍历策略,如果此Container不是焦点循环根,则返回null。确定此容器的插图,这些插图指示容器边框的大小。获取此容器的布局管理器。<T extends EventListener>
T[]getListeners
(Class<T> listenerType) 返回当前在此Container
上注册为FooListener
的所有对象的数组。返回此容器的最大大小。返回此容器的最小大小。getMousePosition
(boolean allowChildren) 如果Container
在鼠标指针下,则返回鼠标指针在此Container
的坐标空间中的位置,否则返回null
。返回此容器的首选大小。insets()
已弃用。JDK版本1.1后已被getInsets()
取代。void
使容器无效。boolean
检查组件是否包含在此容器的组件层次结构中。boolean
返回此Container是否是焦点遍历循环的根。boolean
isFocusCycleRoot
(Container container) 返回指定Container是否是此Container的焦点遍历循环的焦点根。final boolean
返回此容器是否提供焦点遍历策略。boolean
返回是否已为此Container明确设置了焦点遍历策略。boolean
指示此容器是否为验证根。void
layout()
已弃用。JDK版本1.1后已被doLayout()
取代。void
list
(PrintStream out, int indent) 将此容器的列表打印到指定的输出流。void
list
(PrintWriter out, int indent) 从指定的缩进开始,将列表打印到指定的打印写入器。locate
(int x, int y) 已弃用。JDK版本1.1后已被getComponentAt(int, int)
取代。已弃用。JDK版本1.1后已被getMinimumSize()
取代。void
绘制容器。void
绘制此容器中的每个组件。protected String
返回表示此Container
状态的字符串。已弃用。JDK版本1.1后已被getPreferredSize()
取代。void
打印容器。void
打印此容器中的每个组件。protected void
通过将其分派给任何已注册的ContainerListener对象,处理在此容器上发生的容器事件。protected void
处理此容器上的事件。void
remove
(int index) 从此容器中删除由index
指定的组件。void
从此容器中删除指定的组件。void
从此容器中删除所有组件。void
删除指定的容器监听器,使其不再从此容器接收容器事件。void
通过删除其与本机屏幕资源的连接,使此Container不可显示。void
setComponentZOrder
(Component comp, int index) 将指定的组件移动到容器中指定的z顺序索引处。void
setFocusCycleRoot
(boolean focusCycleRoot) 设置此Container是否为焦点遍历循环的根。void
setFocusTraversalKeys
(int id, Set<? extends AWTKeyStroke> keystrokes) 为此Container设置给定遍历操作的焦点遍历键。void
如果此Container是焦点循环根,则设置将管理此Container的子级键盘遍历的焦点遍历策略。final void
setFocusTraversalPolicyProvider
(boolean provider) 设置此容器是否将用于提供焦点遍历策略。void
设置此容器的字体。void
setLayout
(LayoutManager mgr) 设置此容器的布局管理器。void
将焦点向下传递一个焦点遍历循环。void
更新此容器。void
validate()
验证此容器及其所有子组件。protected void
递归遍历容器树,并重新计算任何标记为需要的子树的布局(标记为无效)。Methods declared in class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, revalidate, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setMixingCutoutShape, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Constructor Details
-
Container
public Container()构造一个新的Container。容器可以直接扩展,但在这种情况下是轻量级的,并且必须由组件树中更高处的某个父级容器(例如Frame)包含。
-
-
Method Details
-
getComponentCount
public int getComponentCount()获取此面板中的组件数。注意: 此方法应在AWT树锁下调用。
- 返回:
- 此面板中的组件数。
- 自:
- 1.1
- 另请参阅:
-
countComponents
Deprecated.As of JDK version 1.1, replaced by getComponentCount().返回此容器中的组件数。- 返回:
- 此容器中的组件数
-
getComponent
获取此容器中的第n个组件。注意: 此方法应在AWT树锁下调用。
- 参数:
-
n
- 要获取的组件的索引。 - 返回:
- 此容器中第n个组件。
- 抛出:
-
ArrayIndexOutOfBoundsException
- 如果第n个值不存在。 - 参见:
-
getComponents
获取此容器中的所有组件。注意:此方法应在AWT树锁下调用。
- 返回:
- 此容器中所有组件的数组。
- 参见:
-
getInsets
确定此容器的插图,指示容器边框的大小。例如,
Frame
对象具有与框架标题栏高度相对应的顶部插图。- 返回:
- 此容器的插图。
- 自版本:
- 1.1
- 参见:
-
insets
Deprecated.As of JDK version 1.1, replaced bygetInsets()
.返回此容器的插图。- 返回:
- 此容器的插图
-
add
将指定的组件附加到此容器的末尾。这是addImpl(java.awt.Component, java.lang.Object, int)
的便利方法。此方法更改与布局相关的信息,因此会使组件层次结构无效。如果容器已经显示,必须在此后验证层次结构,以便显示添加的组件。
- 参数:
-
comp
- 要添加的组件 - 返回:
- 组件参数
- 抛出:
-
NullPointerException
- 如果comp
为null
- 参见:
-
add
将指定的组件添加到此容器。这是addImpl(java.awt.Component, java.lang.Object, int)
的便利方法。此方法已在1.1版本中过时。请改用方法
add(Component, Object)
。此方法更改与布局相关的信息,因此会使组件层次结构无效。如果容器已经显示,必须在此后验证层次结构,以便显示添加的组件。
- 参数:
-
name
- 要添加的组件的名称 -
comp
- 要添加的组件 - 返回:
- 添加的组件
- 抛出:
-
NullPointerException
- 如果comp
为null
- 参见:
-
add
将指定的组件添加到此容器的指定位置。这是addImpl(java.awt.Component, java.lang.Object, int)
的便利方法。此方法更改与布局相关的信息,因此会使组件层次结构无效。如果容器已经显示,必须在此后验证层次结构,以便显示添加的组件。
- 参数:
-
comp
- 要添加的组件 -
index
- 要插入组件的位置,或-1
以将组件附加到末尾 - 返回:
-
组件
comp
- 抛出:
-
NullPointerException
- 如果comp
为null
-
IllegalArgumentException
- 如果index
无效(有关详细信息,请参见addImpl(java.awt.Component, java.lang.Object, int)
) - 参见:
-
setComponentZOrder
将指定的组件移动到容器中指定的z顺序索引。z顺序确定组件绘制的顺序;具有最高z顺序的组件首先绘制,具有最低z顺序的组件最后绘制。在组件重叠时,具有较低z顺序的组件会覆盖具有较高z顺序的组件。如果组件是其他容器的子级,则在添加到此容器之前将其从该容器中移除。此方法与
java.awt.Container.add(Component, int)
的重要区别在于,此方法在从其先前容器中移除组件时,除非必要且允许由底层本机窗口系统,否则不会调用removeNotify
。这样,如果组件具有键盘焦点,则在移动到新位置时会保持焦点。此属性仅保证适用于轻量级非
Container
组件。此方法更改与布局相关的信息,因此会使组件层次结构无效。
注意:并非所有平台都支持从一个容器中的重量级组件更改z顺序到另一个容器而不调用
removeNotify
。无法检测平台是否支持此功能,因此开发人员不应做任何假设。- 参数:
-
comp
- 要移动的组件 -
index
- 要插入组件的容器列表中的位置,其中getComponentCount()
会将其附加到末尾 - 抛出:
-
NullPointerException
- 如果comp
为null
-
IllegalArgumentException
- 如果comp
是容器的父级之一 -
IllegalArgumentException
- 如果index
不在[0, getComponentCount()]
范围内以进行容器之间的移动,或者不在[0, getComponentCount()-1]
范围内以在容器内部移动 -
IllegalArgumentException
- 如果将容器添加到自身 -
IllegalArgumentException
- 如果将Window
添加到容器 - 自版本:
- 1.5
- 参见:
-
getComponentZOrder
返回容器中组件的z顺序索引。组件在z顺序层次结构中越高,其索引越低。具有最低z顺序索引的组件最后绘制,位于所有其他子组件之上。- 参数:
-
comp
- 被查询的组件 - 返回:
-
组件的z顺序索引;如果组件为
null
或不属于容器,则返回-1 - 自版本:
- 1.5
- 参见:
-
add
将指定的组件添加到此容器的末尾。还通知布局管理器使用指定的约束对象将组件添加到此容器的布局中。这是addImpl(java.awt.Component, java.lang.Object, int)
的便利方法。此方法更改与布局相关的信息,因此会使组件层次结构无效。如果容器已经显示,必须在此后验证层次结构,以便显示添加的组件。
- 参数:
-
comp
- 要添加的组件 -
constraints
- 表达此组件的布局约束的对象 - 抛出:
-
NullPointerException
- 如果comp
为null
- 自版本:
- 1.1
- 参见:
-
add
将指定的组件以指定的约束添加到此容器的指定索引处。还通知布局管理器使用指定的约束对象将组件添加到此容器的布局中。这是addImpl(java.awt.Component, java.lang.Object, int)
的便利方法。此方法更改与布局相关的信息,因此使组件层次结构无效。如果容器已经显示,则必须在此后验证层次结构,以便显示添加的组件。
- 参数:
-
comp
- 要添加的组件 -
constraints
- 表达此组件的布局约束的对象 -
index
- 要插入组件的容器列表中的位置;-1
表示插入到末尾组件 - 抛出:
-
NullPointerException
- 如果comp
为null
-
IllegalArgumentException
- 如果index
无效(请参阅addImpl(java.awt.Component, java.lang.Object, int)
了解详情) - 参见:
-
addImpl
将指定的组件添加到此容器的指定索引处。此方法还通过addLayoutComponent
方法通知布局管理器使用指定的约束对象将组件添加到此容器的布局中。约束由使用的特定布局管理器定义。例如,
BorderLayout
类定义了五个约束:BorderLayout.NORTH
、BorderLayout.SOUTH
、BorderLayout.EAST
、BorderLayout.WEST
和BorderLayout.CENTER
。GridBagLayout
类需要一个GridBagConstraints
对象。未传递正确类型的约束对象会导致IllegalArgumentException
。如果当前布局管理器实现了
LayoutManager2
,则会在其上调用LayoutManager2.addLayoutComponent(Component,Object)
。如果当前布局管理器未实现LayoutManager2
,并且约束是一个String
,则会在其上调用LayoutManager.addLayoutComponent(String,Component)
。如果组件不是此容器的祖先并且具有非空父级,则在将其添加到此容器之前,将其从当前父级中移除。
这是要覆盖的方法,如果程序需要跟踪对容器的每个添加请求,因为所有其他添加方法都会推迟到此方法。覆盖方法通常应包括对该方法的超类版本的调用:
super.addImpl(comp, constraints, index)
此方法更改与布局相关的信息,因此使组件层次结构无效。如果容器已经显示,则必须在此后验证层次结构,以便显示添加的组件。
- 参数:
-
comp
- 要添加的组件 -
constraints
- 表达此组件的布局约束的对象 -
index
- 要插入组件的容器列表中的位置,其中-1
表示追加到末尾 - 抛出:
-
IllegalArgumentException
- 如果index
无效;如果comp
是此容器的子级,则有效范围为[-1, getComponentCount()-1]
;如果组件不是此容器的子级,则有效范围为[-1, getComponentCount()]
-
IllegalArgumentException
- 如果comp
是此容器的祖先 -
IllegalArgumentException
- 如果将窗口添加到容器 -
NullPointerException
- 如果comp
为null
- 自从:
- 1.1
- 参见:
-
remove
public void remove(int index) 从此容器中删除由index
指定的组件。此方法还通过removeLayoutComponent
方法通知布局管理器从此容器的布局中删除组件。此方法更改与布局相关的信息,因此使组件层次结构无效。如果容器已经显示,则必须在此后验证层次结构,以便反映更改。
- 参数:
-
index
- 要删除的组件的索引 - 抛出:
-
ArrayIndexOutOfBoundsException
- 如果index
不在范围[0, getComponentCount()-1]
内 - 自从:
- 1.1
- 参见:
-
remove
从此容器中删除指定的组件。此方法还通过removeLayoutComponent
方法通知布局管理器从此容器的布局中删除组件。此方法更改与布局相关的信息,因此使组件层次结构无效。如果容器已经显示,则必须在此后验证层次结构,以便反映更改。
- 参数:
-
comp
- 要删除的组件 - 抛出:
-
NullPointerException
- 如果comp
为null
- 参见:
-
removeAll
public void removeAll()从此容器中删除所有组件。此方法还通过removeLayoutComponent
方法通知布局管理器从此容器的布局中删除组件。此方法更改与布局相关的信息,因此使组件层次结构无效。如果容器已经显示,则必须在此后验证层次结构,以便反映更改。
- 参见:
-
getLayout
获取此容器的布局管理器。- 返回:
- 此容器的当前布局管理器
- 参见:
-
setLayout
为此容器设置布局管理器。此方法更改与布局相关的信息,因此使组件层次结构无效。
- 参数:
-
mgr
- 指定的布局管理器 - 参见:
-
doLayout
public void doLayout()使此容器布局其组件。大多数程序不应直接调用此方法,而应该调用validate
方法。 -
layout
Deprecated.As of JDK version 1.1, replaced bydoLayout()
. -
isValidateRoot
public boolean isValidateRoot()表示此容器是否为验证根。与验证根后代的边界等布局相关更改不会影响验证根父级的布局。这种特殊性使得
invalidate()
方法在遇到验证根时停止使组件层次结构无效。然而,为了保持向后兼容性,只有当java.awt.smartInvalidate
系统属性值设置为true
时,才启用这种新的优化行为。如果组件层次结构包含验证根,并且启用了新的优化
invalidate()
行为,则必须在先前使组件无效的验证根上调用validate()
方法,以便稍后恢复层次结构的有效性。否则,应该在顶级容器(如Frame
对象)上调用validate()
方法来恢复组件层次结构的有效性。Window
类和Applet
类是AWT中的验证根。Swing引入了更多的验证根。- 返回:
- 此容器是否为验证根
- 自:
- 1.7
- 另请参见:
-
invalidate
public void invalidate()使容器无效。如果安装在此容器上的
LayoutManager
是LayoutManager2
接口的实例,则会在其上调用LayoutManager2.invalidateLayout(Container)
方法,并将此Container
作为参数传递。然后,此方法标记此容器为无效,并使其祖先无效。有关更多详细信息,请参阅
Component.invalidate()
方法。- 覆盖:
-
invalidate
在类中Component
- 另请参见:
-
validate
public void validate()验证此容器及其所有子组件。验证容器意味着布局其子组件。布局相关更改,例如设置组件的边界或将组件添加到容器中,会自动使容器无效。请注意,容器的祖先也可能被使无效(请参阅
Component.invalidate()
以获取详细信息)。因此,为了恢复层次结构的有效性,应在层次结构中顶部的无效容器上调用validate()
方法。验证容器可能是一个耗时的操作。出于性能原因,开发人员可以推迟对层次结构的验证,直到一组与布局相关的操作完成,例如在将所有子项添加到容器后。
如果此
Container
无效,则此方法调用validateTree
方法,并将此Container
标记为有效。否则,不执行任何操作。 -
validateTree
protected void validateTree()递归地遍历容器树,并为标记为需要的任何子树(标记为无效)重新计算布局。调用此方法的方法应提供同步:validate
。- 另请参见:
-
setFont
设置此容器的字体。此方法更改与布局相关的信息,因此会使组件层次结构无效。
-
getPreferredSize
返回此容器的首选大小。如果首选大小未由Component.setPreferredSize(Dimension)
显式设置,并且此Container
具有非null
的LayoutManager
,则使用LayoutManager.preferredLayoutSize(Container)
来计算首选大小。注意:一些实现可能会缓存从
LayoutManager
返回的值。缓存的实现不需要在每次调用此方法时调用LayoutManager.preferredLayoutSize
,而只有在Container
变为无效后才会查询LayoutManager
。- 覆盖:
-
getPreferredSize
在类中Component
- 返回:
-
代表此容器首选大小的
Dimension
实例。 - 另请参见:
-
preferredSize
Deprecated.As of JDK version 1.1, replaced bygetPreferredSize()
.从类中复制的描述:Component
返回组件的首选大小。- 覆盖:
-
preferredSize
在类中Component
- 返回:
- 组件的首选大小
-
getMinimumSize
返回此容器的最小大小。如果最小大小未由Component.setMinimumSize(Dimension)
显式设置,并且此Container
具有非null
的LayoutManager
,则使用LayoutManager.minimumLayoutSize(Container)
来计算最小大小。注意:一些实现可能会缓存从
LayoutManager
返回的值。缓存的实现不需要在每次调用此方法时调用minimumLayoutSize
,而只有在Container
变为无效后才会查询LayoutManager
。- 覆盖:
-
getMinimumSize
在类中Component
- 返回:
-
代表此容器最小大小的
Dimension
实例。 - 自:
- 1.1
- 另请参见:
-
minimumSize
Deprecated.As of JDK version 1.1, replaced bygetMinimumSize()
.从类中复制的描述:Component
返回此组件的最小大小。- 覆盖:
-
minimumSize
在类中Component
- 返回:
- 此组件的最小大小
-
getMaximumSize
返回此容器的最大大小。如果最大大小未由Component.setMaximumSize(Dimension)
显式设置,并且安装在此Container
上的LayoutManager
是LayoutManager2
接口的实例,则使用LayoutManager2.maximumLayoutSize(Container)
来计算最大大小。注意:一些实现可能会缓存从
LayoutManager2
返回的值。缓存的实现不需要在每次调用此方法时调用maximumLayoutSize
,而只有在Container
变为无效后才会查询LayoutManager2
。- 覆盖:
-
getMaximumSize
在类Component
- 返回:
-
一个代表此容器最大尺寸的
Dimension
实例。 - 参见:
-
getAlignmentX
public float getAlignmentX()返回沿x轴的对齐方式。这指定组件希望相对于其他组件对齐的方式。该值应为介于0和1之间的数字,其中0表示沿原点对齐,1表示与原点最远对齐,0.5表示居中,依此类推。- 覆盖:
-
getAlignmentX
在类Component
- 返回:
- 此组件的水平对齐方式
-
getAlignmentY
public float getAlignmentY()返回沿y轴的对齐方式。这指定组件希望相对于其他组件对齐的方式。该值应为介于0和1之间的数字,其中0表示沿原点对齐,1表示与原点最远对齐,0.5表示居中,依此类推。- 覆盖:
-
getAlignmentY
在类Component
- 返回:
- 此组件的垂直对齐方式
-
paint
绘制容器。这将将绘图转发给此容器的任何轻量级组件。如果重新实现此方法,则应调用super.paint(g),以便正确呈现轻量级组件。如果子组件完全被g中当前的裁剪设置剪切,将不会将paint()转发给该子组件。 -
update
更新容器。这将将更新转发给此容器的任何轻量级组件。如果重新实现此方法,则应调用super.update(g),以便正确呈现轻量级组件。如果子组件完全被g中当前的裁剪设置剪切,将不会将update()转发给该子组件。 -
print
打印容器。这将将打印转发给此容器的任何轻量级组件。如果重新实现此方法,则应调用super.print(g),以便正确呈现轻量级组件。如果子组件完全被g中当前的裁剪设置剪切,将不会将print()转发给该子组件。 -
paintComponents
绘制此容器中的每个组件。- 参数:
-
g
- 图形上下文。 - 参见:
-
printComponents
打印此容器中的每个组件。- 参数:
-
g
- 图形上下文。 - 参见:
-
addContainerListener
将指定的容器监听器添加到此容器以接收来自此容器的容器事件。如果l为null,则不会抛出异常且不执行任何操作。有关AWT线程模型的详细信息,请参阅AWT线程问题。
- 参数:
-
l
- 容器监听器 - 参见:
-
removeContainerListener
删除指定的容器监听器,使其不再从此容器接收容器事件。如果l为null,则不会抛出异常且不执行任何操作。有关AWT线程模型的详细信息,请参阅AWT线程问题。
- 参数:
-
l
- 容器监听器 - 参见:
-
getContainerListeners
返回在此容器上注册的所有容器监听器的数组。- 返回:
-
所有此容器的
ContainerListener
或如果当前未注册容器监听器,则返回空数组 - 自:
- 1.4
- 参见:
-
getListeners
返回当前在此Container
上注册为FooListener
的所有对象的数组。使用addFooListener
方法注册FooListener
。您可以使用类文字指定
listenerType
参数,例如FooListener.class
。例如,您可以使用以下代码查询Container c
的容器监听器:ContainerListener[] cls = (ContainerListener[])(c.getListeners(ContainerListener.class));
如果不存在此类监听器,则此方法将返回一个空数组。- 覆盖:
-
getListeners
在类Component
- 类型参数:
-
T
- 监听器的类型 - 参数:
-
listenerType
- 请求的监听器类型;此参数应指定从java.util.EventListener
继承的接口 - 返回:
-
在此容器上注册为
FooListener
的所有对象的数组,如果尚未添加此类监听器,则返回空数组 - 抛出:
-
ClassCastException
- 如果listenerType
未指定实现java.util.EventListener
的类或接口 -
NullPointerException
- 如果listenerType
为null
- 自:
- 1.3
- 参见:
-
processEvent
处理此容器上的事件。如果事件是ContainerEvent
,则调用processContainerEvent
方法,否则调用其超类的processEvent
。请注意,如果事件参数为
null
,则行为是未指定的,可能会导致异常。- 覆盖:
-
processEvent
在类Component
中 - 参数:
-
e
- 事件 - 参见:
-
processContainerEvent
通过将容器事件分派给任何已注册的ContainerListener对象来处理发生在此容器上的容器事件。注意:除非为此组件启用了容器事件,否则不会调用此方法;当发生以下情况之一时会启用容器事件:- 通过
addContainerListener
注册了ContainerListener对象 - 通过
enableEvents
启用了容器事件
请注意,如果事件参数为
null
,则行为是未指定的,可能会导致异常。- 参数:
-
e
- 容器事件 - 参见:
- 通过
-
deliverEvent
Deprecated.As of JDK version 1.1, replaced bydispatchEvent(AWTEvent e)
- 覆盖:
-
deliverEvent
在类Component
中 - 参数:
-
e
- 要传递的事件
-
getComponentAt
定位包含x、y位置的组件。在组件重叠的情况下,返回最顶层的子组件。这是通过找到在索引0处最接近给定点的组件来确定的,该组件通过Component.contains()声明包含给定点,但具有本机对等体的组件优先于没有本机对等体的组件(即轻量级组件)。- 覆盖:
-
getComponentAt
在类Component
中 - 参数:
-
x
- x坐标 -
y
- y坐标 - 返回:
- 如果组件不包含该位置,则返回null。如果请求点处没有子组件且该点在容器的边界内,则返回容器本身;否则返回最顶层的子组件。
- 自从:
- 1.1
- 参见:
-
locate
Deprecated.As of JDK version 1.1, replaced bygetComponentAt(int, int)
.从类中复制的描述:Component
返回指定位置的鼠标指针在此Container
的坐标空间中的位置,如果Container
在鼠标指针下,则返回null
。此方法类似于Component.getMousePosition()
,但它可以考虑Container
的子组件。如果allowChildren
为false
,则此方法仅在鼠标指针直接位于Container
上方时返回非null值,而不是位于被子组件遮挡的部分上方。如果allowChildren
为true
,则此方法在鼠标指针位于Container
或其任何后代上方时返回非null值。- 参数:
-
allowChildren
- 如果应考虑子组件 - 返回:
-
相对于此
Component
的鼠标坐标,或null - 抛出:
-
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true - 自从:
- 1.5
- 参见:
-
getComponentAt
获取包含指定点的组件。- 覆盖:
-
getComponentAt
在类Component
中 - 参数:
-
p
- 点。 - 返回:
-
返回包含该点的组件,如果组件不包含该点,则返回
null
。 - 自从:
- 1.1
- 参见:
-
getMousePosition
返回此Container
的坐标空间中鼠标指针的位置,如果Container
在鼠标指针下,则返回null
。此方法类似于Component.getMousePosition()
,但它可以考虑Container
的子组件。如果allowChildren
为false
,则此方法仅在鼠标指针直接位于Container
上方时返回非null值,而不是位于被子组件遮挡的部分上方。如果allowChildren
为true
,则此方法在鼠标指针位于Container
或其任何后代上方时返回非null值。- 参数:
-
allowChildren
- 如果应考虑子组件 - 返回:
-
相对于此
Component
的鼠标坐标,或null - 抛出:
-
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true - 自从:
- 1.5
- 参见:
-
findComponentAt
定位包含指定位置的可见子组件。在组件重叠的情况下,返回最顶层的子组件。如果包含子组件是一个Container,则此方法将继续搜索最深层嵌套的子组件。在搜索期间将忽略不可见的组件。findComponentAt方法与getComponentAt不同之处在于getComponentAt仅搜索Container的直接子组件;如果包含组件是一个Container,则findComponentAt将搜索该子组件以查找嵌套组件。
- 参数:
-
x
- x坐标 -
y
- y坐标 - 返回:
- 如果组件不包含该位置,则返回null。如果请求点处没有子组件且该点在容器的边界内,则返回容器本身。
- 自从:
- 1.2
- 参见:
-
findComponentAt
定位包含指定点的可见子组件。在组件重叠的情况下,返回最顶层的子组件。如果包含子组件是一个Container,则此方法将继续搜索最深层嵌套的子组件。在搜索期间将忽略不可见的组件。findComponentAt方法与getComponentAt不同之处在于getComponentAt仅搜索Container的直接子组件;如果包含组件是一个Container,则findComponentAt将搜索该子组件以查找嵌套组件。
- 参数:
-
p
- 点。 - 返回:
- 如果组件不包含该位置,则返回null。如果请求点处没有子组件且该点在容器的边界内,则返回容器本身。
- 抛出:
-
NullPointerException
- 如果p
为null
- 自从:
- 1.2
- 参见:
-
addNotify
public void addNotify()通过将其连接到本机屏幕资源使此Container可显示。使容器可显示将导致其所有子组件都可显示。此方法由工具包内部调用,不应由程序直接调用。 -
removeNotify
public void removeNotify()通过删除与本机屏幕资源的连接使此Container不可显示。使容器不可显示将导致其所有子组件都不可显示。此方法由工具包内部调用,不应由程序直接调用。- 覆盖:
-
removeNotify
在类Component
中 - 参见:
-
isAncestorOf
检查组件是否包含在此容器的组件层次结构中。- 参数:
-
c
- 组件 - 返回:
-
true
如果它是祖先;否则为false
。 - 自版本:
- 1.1
-
paramString
返回表示此Container
状态的字符串。此方法仅用于调试目的,返回的字符串的内容和格式可能因实现而异。返回的字符串可能为空,但不会是null
。- 覆盖:
-
paramString
在类Component
- 返回:
- 此容器的参数字符串
-
list
将此容器的列表打印到指定的输出流。列表从指定的缩进开始。容器的直接子项将以
indent+1
的缩进打印。这些子项的子项将以indent+2
打印,依此类推。- 覆盖:
-
list
在类Component
- 参数:
-
out
- 打印流 -
indent
- 缩进的空格数 - 抛出:
-
NullPointerException
- 如果out
为null
- 自版本:
- 1.0
- 参见:
-
list
打印列表,从指定的缩进开始,到指定的打印写入器。容器的直接子项将以
indent+1
的缩进打印。这些子项的子项将以indent+2
打印,依此类推。- 覆盖:
-
list
在类Component
- 参数:
-
out
- 打印写入器 -
indent
- 缩进的空格数 - 抛出:
-
NullPointerException
- 如果out
为null
- 自版本:
- 1.1
- 参见:
-
setFocusTraversalKeys
为此容器设置给定遍历操作的焦点遍历键。容器的焦点遍历键的默认值取决于实现。Sun建议特定本机平台的所有实现使用相同的默认值。Windows和Unix的建议如下。这些建议在Sun AWT实现中使用。
容器焦点遍历键的推荐默认值 标识符 含义 默认值 KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS 正常前向键盘遍历 按下TAB,按下CTRL-TAB KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS 正常反向键盘遍历 按下SHIFT-TAB,按下CTRL-SHIFT-TAB KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 向上一个焦点遍历循环 无 KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS 向下一个焦点遍历循环 无 使用AWTKeyStroke API,客户端代码可以指定焦点遍历操作将在两个特定KeyEvents中的哪一个上发生,即KEY_PRESSED或KEY_RELEASED。但是,无论指定哪个KeyEvent,与焦点遍历键相关的所有KeyEvents,包括关联的KEY_TYPED事件,都将被消耗,并且不会被分派到任何容器。将KEY_TYPED事件映射到焦点遍历操作,或将同一事件映射到此容器的多个默认焦点遍历操作是运行时错误。
如果为Set指定了null值,则此容器将从其父级继承Set。如果此容器的所有祖先都为null,则使用当前KeyboardFocusManager的默认Set。
如果
keystrokes
中的任何Object
不是AWTKeyStroke
,此方法可能会抛出ClassCastException
。- 覆盖:
-
setFocusTraversalKeys
在类Component
- 参数:
-
id
- KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS、KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS或KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS之一 -
keystrokes
- 指定操作的AWTKeyStroke集合 - 抛出:
-
IllegalArgumentException
- 如果id不是KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS、KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS或KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS之一,或者如果keystrokes包含null,或者如果任何keystroke表示KEY_TYPED事件,或者如果任何keystroke已经映射到此容器的另一个焦点遍历操作 - 自版本:
- 1.4
- 参见:
-
getFocusTraversalKeys
返回此容器的给定遍历操作的焦点遍历键集合。(有关每个键的完整描述,请参阅setFocusTraversalKeys
。)如果未为此容器明确定义遍历键集合,则返回此容器的父级的集合。如果未为此容器的任何祖先明确定义集合,则返回当前KeyboardFocusManager的默认集合。
- 覆盖:
-
getFocusTraversalKeys
在类Component
- 参数:
-
id
- KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS、KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS或KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS之一 - 返回:
- 指定操作的AWTKeyStrokes集合。该集合是不可修改的,可能为空。不会返回null。
- 抛出:
-
IllegalArgumentException
- 如果id不是KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS、KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS或KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS之一 - 自版本:
- 1.4
- 参见:
-
areFocusTraversalKeysSet
public boolean areFocusTraversalKeysSet(int id) 返回给定焦点遍历操作的焦点遍历键集合是否已为此容器明确定义。如果此方法返回false
,则此容器正在从祖先或当前KeyboardFocusManager继承集合。- 覆盖:
-
areFocusTraversalKeysSet
在类Component
- 参数:
-
id
- KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS、KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS或KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS之一 - 返回:
-
true
如果给定焦点遍历操作的焦点遍历键集合已为此组件明确定义;否则为false
。 - 抛出:
-
IllegalArgumentException
- 如果id不是KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS、KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS或KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS之一 - 自版本:
- 1.4
-
isFocusCycleRoot
返回指定的容器是否是此容器焦点遍历循环的焦点循环根。每个焦点遍历循环只有一个焦点循环根,每个不是焦点循环根的容器只属于一个焦点遍历循环。作为焦点循环根的容器属于两个循环:一个根在容器本身,另一个根在容器的最近焦点循环根祖先。在这种情况下,此方法将为这两个容器返回true
。- 覆盖:
-
isFocusCycleRoot
在类Component
- 参数:
-
container
- 要测试的容器 - 返回:
-
如果指定的容器是此容器的焦点循环根,则返回
true
;否则返回false
- 自从:
- 1.4
- 参见:
-
setFocusTraversalPolicy
设置将管理此容器子级键盘遍历的焦点遍历策略,如果此容器是焦点循环根。如果参数为null,则此容器从其焦点循环根祖先继承其策略。如果参数为非null,则此策略将被所有没有自己的键盘遍历策略的焦点循环根子级(以及递归地,它们的焦点循环根子级)继承。如果此容器不是焦点循环根,则策略将被记住,但直到此容器被设置为焦点循环根之前,它将不会被此容器或任何其他容器使用或继承。
- 参数:
-
policy
- 此容器的新焦点遍历策略 - 自从:
- 1.4
- 参见:
-
getFocusTraversalPolicy
返回将管理此容器子级键盘遍历的焦点遍历策略,如果此容器不是焦点循环根,则返回null。如果未为此容器明确设置遍历策略,则返回此容器的焦点循环根祖先的策略。- 返回:
- 此容器的焦点遍历策略,如果此容器不是焦点循环根,则返回null。
- 自从:
- 1.4
- 参见:
-
isFocusTraversalPolicySet
public boolean isFocusTraversalPolicySet()返回是否已为此容器明确设置焦点遍历策略。如果此方法返回false
,则此容器将从祖先继承其焦点遍历策略。- 返回:
-
如果已为此容器明确设置焦点遍历策略,则返回
true
;否则返回false
。 - 自从:
- 1.4
-
setFocusCycleRoot
public void setFocusCycleRoot(boolean focusCycleRoot) 设置此容器是否为焦点遍历循环的根。一旦焦点进入遍历循环,通常情况下,除非按下上下遍历键之一,否则无法通过焦点遍历离开。正常遍历仅限于此容器及其所有不是下级焦点循环根的下级。请注意,焦点遍历策略可能会弯曲这些限制。例如,ContainerOrderFocusTraversalPolicy支持隐式下级遍历。指定此容器子级遍历顺序的另一种方法是将此容器设置为焦点遍历策略提供者。
- 参数:
-
focusCycleRoot
- 指示此容器是否为焦点遍历循环的根 - 自从:
- 1.4
- 参见:
-
isFocusCycleRoot
public boolean isFocusCycleRoot()返回此容器是否为焦点遍历循环的根。一旦焦点进入遍历循环,通常情况下,除非按下上下遍历键之一,否则无法通过焦点遍历离开。正常遍历仅限于此容器及其所有不是下级焦点循环根的下级。请注意,焦点遍历策略可能会弯曲这些限制。例如,ContainerOrderFocusTraversalPolicy支持隐式下级遍历。- 返回:
- 此容器是否为焦点遍历循环的根
- 自从:
- 1.4
- 参见:
-
setFocusTraversalPolicyProvider
public final void setFocusTraversalPolicyProvider(boolean provider) 设置此容器是否用于提供焦点遍历策略。具有此属性为true
的容器将用于获取焦点遍历策略,而不是最近的焦点循环根祖先。- 参数:
-
provider
- 指示此容器是否用于提供焦点遍历策略 - 自从:
- 1.5
- 参见:
-
isFocusTraversalPolicyProvider
public final boolean isFocusTraversalPolicyProvider()返回此容器是否提供焦点遍历策略。如果此属性设置为true
,则当键盘焦点管理器搜索容器层次结构以获取焦点遍历策略并在遇到此容器之前没有任何其他具有此属性为true或焦点循环根的容器时,则将使用其焦点遍历策略,而不是焦点循环根的策略。- 返回:
-
如果此容器提供焦点遍历策略,则返回
true
;否则返回false
- 自从:
- 1.5
- 参见:
-
transferFocusDownCycle
public void transferFocusDownCycle()将焦点传输到下一个焦点遍历循环。如果此容器是焦点循环根,则焦点所有者设置为此容器的默认焦点组件,并且当前焦点循环根设置为此容器。如果此容器不是焦点循环根,则不会发生焦点遍历操作。- 自从:
- 1.4
- 参见:
-
applyComponentOrientation
设置此容器及其所有包含的组件的ComponentOrientation
属性。此方法更改与布局相关的信息,因此会使组件层次结构无效。
- 覆盖:
-
applyComponentOrientation
在类Component
- 参数:
-
o
- 此容器及其包含的组件的新组件方向 - 抛出:
-
NullPointerException
- 如果orientation
为null - 自从:
- 1.4
- 参见:
-
addPropertyChangeListener
向监听器列表添加PropertyChangeListener。该监听器为此类的所有绑定属性注册,包括以下内容:- 此容器的字体("font")
- 此容器的背景颜色("background")
- 此容器的前景颜色("foreground")
- 此容器的可聚焦性("focusable")
- 此容器的焦点遍历键启用状态("focusTraversalKeysEnabled")
- 此容器的FORWARD_TRAVERSAL_KEYS集合("forwardFocusTraversalKeys")
- 此容器的BACKWARD_TRAVERSAL_KEYS集合("backwardFocusTraversalKeys")
- 此容器的UP_CYCLE_TRAVERSAL_KEYS集合("upCycleFocusTraversalKeys")
- 此容器的DOWN_CYCLE_TRAVERSAL_KEYS集合("downCycleFocusTraversalKeys")
- 此容器的焦点遍历策略("focusTraversalPolicy")
- 此容器的焦点循环根状态("focusCycleRoot")
如果监听器为null,则不会抛出异常,也不会执行任何操作。
- 覆盖:
-
addPropertyChangeListener
在类Component
- 参数:
-
listener
- 要添加的PropertyChangeListener - 参见:
-
addPropertyChangeListener
向特定属性的监听器列表中添加PropertyChangeListener。指定的属性可以是用户定义的,也可以是以下默认属性之一:- 此容器的字体("font")
- 此容器的背景颜色("background")
- 此容器的前景颜色("foreground")
- 此容器的可聚焦性("focusable")
- 此容器的焦点遍历键启用状态("focusTraversalKeysEnabled")
- 此容器的FORWARD_TRAVERSAL_KEYS集合("forwardFocusTraversalKeys")
- 此容器的BACKWARD_TRAVERSAL_KEYS集合("backwardFocusTraversalKeys")
- 此容器的UP_CYCLE_TRAVERSAL_KEYS集合("upCycleFocusTraversalKeys")
- 此容器的DOWN_CYCLE_TRAVERSAL_KEYS集合("downCycleFocusTraversalKeys")
- 此容器的焦点遍历策略("focusTraversalPolicy")
- 此容器的焦点循环根状态("focusCycleRoot")
- 此容器的焦点遍历策略提供程序状态("focusTraversalPolicyProvider")
- 此容器的焦点遍历策略提供程序状态("focusTraversalPolicyProvider")
如果listener为null,则不会抛出异常,也不会执行任何操作。
- 覆盖:
-
addPropertyChangeListener
在类Component
- 参数:
-
propertyName
- 上述属性名称之一 -
listener
- 要添加的PropertyChangeListener - 参见:
-