- 所有已实现的接口:
ImageObserver,MenuContainer,Serializable
- 已知子类:
BasicSplitPaneDivider,CellRendererPane,DefaultTreeCellEditor.EditorContainer,JComponent,Panel,ScrollPane,Window
添加到容器中的组件在列表中进行跟踪。列表的顺序将定义组件在容器中从前到后的堆叠顺序。如果在将组件添加到容器时未指定索引,它将被添加到列表的末尾(因此添加到堆叠顺序的底部)。
笔记:有关焦点子系统的详细信息,请参阅 如何使用焦点子系统、The Java Tutorial 中的一节和 对焦规格 了解更多信息。
- 自从:
- 1.0
- 参见:
-
内部类总结
内部类 -
字段摘要
在类 java.awt.Component 中声明的字段
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT在接口 java.awt.image.ImageObserver 中声明的字段
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH -
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述将指定的组件附加到此容器的末尾。将指定的组件添加到此容器的给定位置。void将指定的组件添加到此容器的末尾。void在指定索引处使用指定约束将指定组件添加到此容器。将指定的组件添加到此容器。void添加指定的容器监听以接收来自此容器的容器事件。protected void将指定的组件添加到此容器的指定索引处。void通过将此 Container 连接到本机屏幕资源使其可显示。void将 PropertyChangeListener 添加到监听列表。voidaddPropertyChangeListener(String propertyName, PropertyChangeListener listener) 将 PropertyChangeListener 添加到特定属性的监听列表。void设置此容器及其中包含的所有组件的ComponentOrientation属性。booleanareFocusTraversalKeysSet(int id) 返回是否已为此 Container 显式定义给定焦点遍历操作的焦点遍历键集。int已弃用。从 JDK 1.1 版开始,由 getComponentCount() 取代。void已弃用。从 JDK 版本 1.1 开始,由dispatchEvent(AWTEvent e)取代voiddoLayout()使此容器布置其组件。findComponentAt(int x, int y) 定位包含指定位置的可见子组件。定位包含指定点的可见子组件。float返回沿 x 轴的对齐方式。float返回沿 y 轴的对齐方式。getComponent(int n) 获取此容器中的第 n 个组件。getComponentAt(int x, int y) 找到包含 x,y 位置的组件。获取包含指定点的组件。int获取此面板中的组件数。获取此容器中的所有组件。intgetComponentZOrder(Component comp) 返回容器内组件的 z 顺序索引。返回在此容器上注册的所有容器监听的数组。getFocusTraversalKeys(int id) 返回此 Container 的给定遍历操作的焦点遍历键集。返回将管理此 Container 的子项的键盘遍历的焦点遍历策略,如果此 Container 不是焦点循环根,则返回 null。确定此容器的 insets,它指示容器边框的大小。获取此容器的布局管理器。<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 是否是焦点遍历循环的根。booleanisFocusCycleRoot(Container container) 返回指定的Container是否是该Container的焦点遍历循环的焦点循环根。final boolean返回此容器是否提供焦点遍历策略。boolean返回是否已为此 Container 显式设置焦点遍历策略。boolean指示此容器是否是验证根.voidlayout()已弃用。从 JDK 1.1 版开始,由doLayout()取代。voidlist(PrintStream out, int indent) 将此容器的列表打印到指定的输出流。voidlist(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处理此容器上的事件。voidremove(int index) 从此容器中移除由index指定的组件。void从此容器中移除指定的组件。void从此容器中删除所有组件。void删除指定的容器监听,使其不再接收来自该容器的容器事件。void通过删除与本机屏幕资源的连接,使此 Container 不可显示。voidsetComponentZOrder(Component comp, int index) 将指定组件移动到容器中指定的 z 顺序索引。voidsetFocusCycleRoot(boolean focusCycleRoot) 设置此 Container 是否是焦点遍历循环的根。voidsetFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes) 为此容器的给定遍历操作设置焦点遍历键。void如果此 Container 是焦点循环根,则设置将管理此 Container 的子项的键盘遍历的焦点遍历策略。final voidsetFocusTraversalPolicyProvider(boolean provider) 设置此容器是否将用于提供焦点遍历策略。void设置此容器的字体。voidsetLayout(LayoutManager mgr) 为此容器设置布局管理器。void将焦点向下转移一个焦点遍历周期。void更新容器。voidvalidate()验证此容器及其所有子组件。protected void递归地下降容器树并重新计算标记为需要它的任何子树的布局(标记为无效的)。在类 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
-
构造方法详细信息
-
Container
public Container()构造一个新的容器。容器可以直接扩展,但在这种情况下是轻量级的,并且必须由本机组件树中某个较高位置的父级包含。 (例如框架)。
-
-
方法详情
-
getComponentCount
public int getComponentCount()获取此面板中的组件数。注意:这个方法应该在 AWT 树锁下调用。
- 返回:
- 此面板中的组件数。
- 自从:
- 1.1
- 参见:
-
countComponents
已弃用。从 JDK 1.1 版开始,由 getComponentCount() 取代。返回此容器中的组件数。- 返回:
- 此容器中的组件数
-
getComponent
获取此容器中的第 n 个组件。注意:这个方法应该在 AWT 树锁下调用。
- 参数:
n- 要获取的组件的索引。- 返回:
- 然后日此容器中的组件。
- 抛出:
ArrayIndexOutOfBoundsException- 如果 n日值不存在。- 参见:
-
getComponents
获取此容器中的所有组件。注意:这个方法应该在 AWT 树锁下调用。
- 返回:
- 此容器中所有组件的数组。
- 参见:
-
getInsets
确定此容器的 insets,它指示容器边框的大小。例如,一个
Frame对象有一个对应于框架标题栏高度的顶部insets。- 返回:
- 这个容器的insets。
- 自从:
- 1.1
- 参见:
-
insets
已弃用。从 JDK 1.1 版开始,由getInsets()取代。返回此容器的insets。- 返回:
- 这个容器的insets
-
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是nullIllegalArgumentException- 如果index无效(详见addImpl(java.awt.Component, java.lang.Object, int))- 参见:
-
setComponentZOrder
将指定组件移动到容器中指定的 z 顺序索引。 z-order 决定了组件被绘制的顺序;具有最高 z 顺序的组件首先绘制,具有最低 z 顺序的组件最后绘制。在组件重叠的地方,具有较低 z 顺序的组件会重写具有较高 z 顺序的组件。如果该组件是某个其他容器的子组件,则在添加到该容器之前将其从该容器中移除。此方法与
java.awt.Container.add(Component, int)之间的重要区别在于,除非必要且底层本机窗口系统允许,否则此方法不会在组件上调用removeNotify并将其从其先前的容器中删除。这样,如果组件有键盘焦点,它会在移动到新位置时保持焦点。此属性保证仅适用于轻量级非
Container组件。此方法更改与布局相关的信息,因此使组件层次结构无效。
笔记:并非所有平台都支持在不调用
removeNotify的情况下将重量级组件的 z 顺序从一个容器更改为另一个容器。无法检测平台是否支持此功能,因此开发人员不应做出任何假设。- 参数:
comp- 要移动的组件index- 容器列表中要插入组件的位置,其中getComponentCount()附加到末尾- 抛出:
NullPointerException- 如果comp是nullIllegalArgumentException- 如果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是nullIllegalArgumentException- 如果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
已弃用。从 JDK 1.1 版开始,由doLayout()取代。 -
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具有non-nullLayoutManager,则使用LayoutManager.preferredLayoutSize(Container)计算首选大小。注意:某些实现可能会缓存从
LayoutManager返回的值。每次调用此方法时,缓存的实现不需要在LayoutManager上调用preferredLayoutSize,而是仅在Container无效后才查询LayoutManager。- 重写:
getPreferredSize在类Component中- 返回:
Dimension的实例,表示此容器的首选大小。- 参见:
-
preferredSize
已弃用。从 JDK 1.1 版开始,由getPreferredSize()取代。从类复制的描述:Component返回组件的首选大小。- 重写:
preferredSize在类Component中- 返回:
- 组件的首选大小
-
getMinimumSize
返回此容器的最小大小。如果Component.setMinimumSize(Dimension)未明确设置最小大小并且此Container具有non-nullLayoutManager,则使用LayoutManager.minimumLayoutSize(Container)计算最小大小。注意:某些实现可能会缓存从
LayoutManager返回的值。每次调用此方法时,缓存的实现不需要在LayoutManager上调用minimumLayoutSize,而是仅在Container无效后才查询LayoutManager。- 重写:
getMinimumSize在类Component中- 返回:
Dimension的实例,表示此容器的最小大小。- 自从:
- 1.1
- 参见:
-
minimumSize
已弃用。从 JDK 1.1 版开始,由getMinimumSize()取代。从类复制的描述:Component返回此组件的最小尺寸。- 重写:
minimumSize在类Component中- 返回:
- 该组件的最小尺寸
-
getMaximumSize
返回此容器的最大大小。如果Component.setMaximumSize(Dimension)未明确设置最大大小,并且安装在此Container上的LayoutManager是LayoutManager2的实例,则使用LayoutManager2.maximumLayoutSize(Container)计算最大大小。注意:某些实现可能会缓存从
LayoutManager2返回的值。每次调用此方法时,缓存的实现不需要在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
返回在此容器上注册的所有容器监听的数组。- 返回:
-
此容器的所有
ContainerListeners 或空数组(如果当前没有注册容器监听器) - 自从:
- 1.4
- 参见:
-
getListeners
返回当前在此Container上注册为FooListener的所有对象的数组。FooListener是使用addFooListener方法注册的。您可以使用类文字指定
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 对象来处理在此容器上发生的容器事件。注意:除非为此组件启用容器事件,否则不会调用此方法;当发生以下情况之一时,就会发生这种情况:- ContainerListener 对象通过
addContainerListener注册 - 容器事件通过
enableEvents启用
请注意,如果事件参数为
null,则行为未指定且可能导致异常。- 参数:
e- 容器事件- 参见:
- ContainerListener 对象通过
-
deliverEvent
已弃用。从 JDK 版本 1.1 开始,由dispatchEvent(AWTEvent e)取代- 重写:
deliverEvent在类Component中- 参数:
e- 要传递的事件
-
getComponentAt
找到包含 x,y 位置的组件。如果组件中存在重叠,则返回最顶层的子组件。这是通过查找最接近索引 0 的组件来确定的,该组件声称通过 Component.contains() 包含给定点,除了具有本机对等体的组件优先于那些不具有本机对等体的组件(即轻量级组件)。- 重写:
getComponentAt在类Component中- 参数:
x- 的x协调y- 的y协调- 返回:
- 如果组件不包含该位置,则为 null。如果在请求的点处没有子组件并且该点在容器的边界内,则返回容器本身;否则返回最顶层的子级。
- 自从:
- 1.1
- 参见:
-
locate
已弃用。从 JDK 1.1 版开始,由getComponentAt(int, int)取代。从类复制的描述:Component返回占据指定位置的组件(此组件或直接子组件,如果前两个组件均未占据该位置,则返回 null)。 -
getComponentAt
获取包含指定点的组件。- 重写:
getComponentAt在类Component中- 参数:
p- 重点。- 返回:
-
返回包含点的组件,如果组件不包含点,则返回
null。 - 自从:
- 1.1
- 参见:
-
getMousePosition
如果Container在鼠标指针下方,则返回鼠标指针在此Container的坐标空间中的位置,否则返回null。此方法类似于Component.getMousePosition(),不同之处在于它可以考虑Container的子级。如果allowChildren为false,只有当鼠标指针直接在Container上方,而不是在被儿童遮挡的部分上方时,此方法才会返回非空值。如果allowChildren为true且鼠标指针位于Container或其任何后代上方,则此方法返回非空值。- 参数:
allowChildren- 如果应考虑儿童则为真- 返回:
-
相对于此
Component的鼠标坐标,或 null - 抛出:
HeadlessException- 如果 GraphicsEnvironment.isHeadless() 返回 true- 自从:
- 1.5
- 参见:
-
findComponentAt
定位包含指定位置的可见子组件。如果组件中存在重叠,则返回最顶层的子组件。如果包含的子组件是一个Container,该方法会继续寻找嵌套最深的子组件。在搜索过程中忽略不可见的组件。findComponentAt 方法与 getComponentAt 的不同之处在于 getComponentAt 仅搜索 Container 的直接子级;如果包含组件是容器,findComponentAt 将搜索该子组件以查找嵌套组件。
- 参数:
x- 的x协调y- 的y协调- 返回:
- 如果组件不包含该位置,则为 null。如果在请求的点处没有子组件并且该点在容器的边界内,则返回容器本身。
- 自从:
- 1.2
- 参见:
-
findComponentAt
定位包含指定点的可见子组件。如果组件中存在重叠,则返回最顶层的子组件。如果包含的子组件是一个Container,该方法会继续寻找嵌套最深的子组件。在搜索过程中忽略不可见的组件。findComponentAt 方法与 getComponentAt 的不同之处在于 getComponentAt 仅搜索 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
为此容器的给定遍历操作设置焦点遍历键。Container 的焦点遍历键的默认值是依赖于实现的。 Sun 建议特定本机平台的所有实现都使用相同的默认值。下面列出了针对 Windows 和 Unix 的建议。这些建议用于 Sun AWT 实现。
要禁用遍历键,请使用空 Set;推荐使用 Collections.EMPTY_SET。容器焦点遍历键的推荐默认值 Identifier 意义 默认 KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS 正常的正向键盘遍历 KEY_PRESSED 上的 TAB,KEY_PRESSED 上的 CTRL-TAB KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS 正常反向键盘遍历 KEY_PRESSED 上的 SHIFT-TAB,KEY_PRESSED 上的 CTRL-SHIFT-TAB KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 上一个焦点遍历循环 没有任何 KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS 向下一个焦点遍历循环 没有任何 使用 AWTKeyStroke API,客户端代码可以指定两个特定的 KeyEvents,KEY_PRESSED 或 KEY_RELEASED 中的哪一个,将发生焦点遍历操作。但是无论指定哪个KeyEvent,所有与焦点遍历key相关的KeyEvent,包括关联的KEY_TYPED事件,都会被消费,不会派发给任何Container。将 KEY_TYPED 事件指定为映射到焦点遍历操作,或将同一事件映射到多个默认焦点遍历操作是运行时错误。
如果为 Set 指定了 null 值,则此 Container 将从其父级继承 Set。如果此 Container 的所有祖先都为 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 之一,或者如果击键包含 null,或者如果任何击键表示 KEY_TYPED 事件,或者如果任何击键已经映射到另一个焦点遍历这个容器的操作- 自从:
- 1.4
- 参见:
-
getFocusTraversalKeys
返回此 Container 的给定遍历操作的焦点遍历键集。 (有关每个键的完整说明,请参阅setFocusTraversalKeys。)如果没有为这个 Container 显式定义一组遍历键,则返回这个 Container 的父级的 Set。如果没有为此 Container 的任何祖先显式定义 Set,则返回当前 KeyboardFocusManager 的默认 Set。
- 重写:
getFocusTraversalKeys在类Component中- 参数:
id- KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS、KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 或 KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS 之一- 返回:
- 指定操作的 AWTKeyStrokes 集合。 Set 将不可修改,并且可能为空。永远不会返回 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) 返回是否已为此 Container 显式定义给定焦点遍历操作的焦点遍历键集。如果此方法返回false,则此 Container 正在从祖先或当前的 KeyboardFocusManager 继承 Set。- 重写:
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
返回指定的Container是否是该Container的焦点遍历循环的焦点循环根。每个焦点遍历循环只有一个焦点循环根,每个不是焦点循环根的容器只属于一个焦点遍历循环。作为焦点循环根的容器属于两个循环:一个以容器本身为根,另一个以容器最近的焦点循环根祖先为根。在这种情况下,此方法将为这两个容器返回true。- 重写:
isFocusCycleRoot在类Component中- 参数:
container- 要测试的容器- 返回:
true如果指定的 Container 是该 Container 的焦点循环根;false否则- 自从:
- 1.4
- 参见:
-
setFocusTraversalPolicy
如果此 Container 是焦点循环根,则设置将管理此 Container 的子项的键盘遍历的焦点遍历策略。如果参数为空,则此 Container 从其 focus-cycle-root 祖先继承其策略。如果参数不为空,则该策略将由所有没有自己的键盘遍历策略的焦点循环根子项(递归地,它们的焦点循环根子项)继承。如果此容器不是焦点循环根,则该策略将被记住,但不会被此容器或任何其他容器使用或继承,直到此容器成为焦点循环根为止。
- 参数:
policy- 此 Container 的新焦点遍历策略- 自从:
- 1.4
- 参见:
-
getFocusTraversalPolicy
返回将管理此 Container 的子项的键盘遍历的焦点遍历策略,如果此 Container 不是焦点循环根,则返回 null。如果没有为该 Container 显式设置遍历策略,则返回该 Container 的 focus-cycle-root 祖先策略。- 返回:
- 此 Container 的焦点遍历策略,如果此 Container 不是焦点循环根,则为 null。
- 自从:
- 1.4
- 参见:
-
isFocusTraversalPolicySet
public boolean isFocusTraversalPolicySet()返回是否已为此 Container 显式设置焦点遍历策略。如果此方法返回false,则此 Container 将从祖先那里继承其焦点遍历策略。- 返回:
true如果已经为这个 Container 显式设置了焦点遍历策略;false否则。- 自从:
- 1.4
-
setFocusCycleRoot
public void setFocusCycleRoot(boolean focusCycleRoot) 设置此 Container 是否是焦点遍历循环的根。一旦焦点进入遍历循环,通常它不能通过焦点遍历离开它,除非按下向上或向下循环键之一。正常遍历仅限于此容器,以及此容器的所有非劣质焦点循环根的后代的后代。但是请注意,FocusTraversalPolicy 可能会改变这些限制。例如,ContainerOrderFocusTraversalPolicy 支持隐式向下循环遍历。指定此 Container 的子项的遍历顺序的另一种方法是使此 Container 成为 焦点遍历策略提供者 。
- 参数:
focusCycleRoot- 指示此 Container 是否是焦点遍历循环的根- 自从:
- 1.4
- 参见:
-
isFocusCycleRoot
public boolean isFocusCycleRoot()返回此 Container 是否是焦点遍历循环的根。一旦焦点进入遍历循环,通常它不能通过焦点遍历离开它,除非按下向上或向下循环键之一。正常遍历仅限于此容器,以及此容器的所有非劣质焦点循环根的后代的后代。但是请注意,FocusTraversalPolicy 可能会改变这些限制。例如,ContainerOrderFocusTraversalPolicy 支持隐式向下循环遍历。- 返回:
- 此 Container 是否是焦点遍历循环的根
- 自从:
- 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()将焦点向下转移一个焦点遍历周期。如果这个Container是一个焦点循环根,那么焦点所有者被设置为这个Container默认要聚焦的Component,当前焦点循环根被设置为这个Container。如果此 Container 不是焦点循环根,则不会发生焦点遍历操作。- 自从:
- 1.4
- 参见:
-
applyComponentOrientation
设置此容器及其中包含的所有组件的ComponentOrientation属性。此方法更改与布局相关的信息,因此使组件层次结构无效。
- 重写:
applyComponentOrientation在类Component中- 参数:
o- 此容器及其中包含的组件的新组件方向。- 抛出:
NullPointerException- 如果orientation为空。- 自从:
- 1.4
- 参见:
-
addPropertyChangeListener
将 PropertyChangeListener 添加到监听列表。监听已为此类的所有绑定属性注册,包括以下内容:- 此容器的字体(“字体”)
- 此 Container 的背景颜色(“背景”)
- 此 Container 的前景色(“foreground”)
- 此容器的可聚焦性(“可聚焦”)
- 此容器的焦点遍历键启用状态(“focusTraversalKeysEnabled”)
- 此容器的一组 FORWARD_TRAVERSAL_KEYS(“forwardFocusTraversalKeys”)
- 此容器的一组 BACKWARD_TRAVERSAL_KEYS(“backwardFocusTraversalKeys”)
- 此容器的 UP_CYCLE_TRAVERSAL_KEYS 集合(“upCycleFocusTraversalKeys”)
- 此容器的 DOWN_CYCLE_TRAVERSAL_KEYS 集合(“downCycleFocusTraversalKeys”)
- 此 Container 的焦点遍历策略 ("focusTraversalPolicy")
- 此容器的焦点循环根状态(“focusCycleRoot”)
如果 listener 为 null,则不会抛出异常并且不会执行任何操作。
- 重写:
addPropertyChangeListener在类Component中- 参数:
listener- 要添加的 PropertyChangeListener- 参见:
-
addPropertyChangeListener
将 PropertyChangeListener 添加到特定属性的监听列表。指定的属性可以是用户定义的,也可以是以下默认值之一:- 此容器的字体(“字体”)
- 此 Container 的背景颜色(“背景”)
- 此 Container 的前景色(“foreground”)
- 此容器的可聚焦性(“可聚焦”)
- 此容器的焦点遍历键启用状态(“focusTraversalKeysEnabled”)
- 此容器的一组 FORWARD_TRAVERSAL_KEYS(“forwardFocusTraversalKeys”)
- 此容器的一组 BACKWARD_TRAVERSAL_KEYS(“backwardFocusTraversalKeys”)
- 此容器的 UP_CYCLE_TRAVERSAL_KEYS 集合(“upCycleFocusTraversalKeys”)
- 此容器的 DOWN_CYCLE_TRAVERSAL_KEYS 集合(“downCycleFocusTraversalKeys”)
- 此 Container 的焦点遍历策略 ("focusTraversalPolicy")
- 此容器的焦点循环根状态(“focusCycleRoot”)
- 此容器的焦点遍历策略提供者 state("focusTraversalPolicyProvider")
- 此容器的焦点遍历策略提供者 state("focusTraversalPolicyProvider")
如果 listener 为 null,则不会抛出异常并且不会执行任何操作。
- 重写:
addPropertyChangeListener在类Component中- 参数:
propertyName- 上面列出的属性名称之一listener- 要添加的 PropertyChangeListener- 参见:
-