JavaTM 2 Platform
Standard Ed. 6

java.awt
类 Container

java.lang.Object
  继承者 java.awt.Component
      继承者 java.awt.Container
所有已实现的接口:
ImageObserver, MenuContainer, Serializable
直接已知子类:
BasicSplitPaneDivider, CellRendererPane, DefaultTreeCellEditor.EditorContainer, JComponent, Panel, ScrollPane, Window

public class Container
extends Component

一般的 Abstract Window Toolkit(AWT) 容器对象是一个可包含其他 AWT 组件的组件。

添加到容器中的组件放在一个列表中。列表的顺序将定义组件在容器内的正向堆栈顺序。如果将组件添加到容器中时未指定索引,则该索引将被添加到列表尾部(此后它位于堆栈顺序的底部)。

:有关焦点子系统的详细信息,请参阅 The Java TutorialHow to Use the Focus Subsystem 一节,要获得更多的信息,请参阅 Focus Specification

从以下版本开始:
JDK1.0
另请参见:
add(java.awt.Component, int), getComponent(int), LayoutManager, 序列化表格

嵌套类摘要
protected  class Container.AccessibleAWTContainer
          用于对可访问性提供默认支持的 Container 内部类。
 
从类 java.awt.Component 继承的嵌套类/接口
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
字段摘要
 
从类 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
 
构造方法摘要
Container()
          构造一个新的 Container。
 
方法摘要
 Component add(Component comp)
          将指定组件追加到此容器的尾部。
 Component add(Component comp, int index)
          将指定组件添加到此容器的给定位置上。
 void add(Component comp, Object constraints)
          将指定的组件添加到此容器的尾部。
 void add(Component comp, Object constraints, int index)
          使用指定约束,将指定组件添加到此容器的指定索引所在的位置上。
 Component add(String name, Component comp)
          将指定组件添加到此容器中。
 void addContainerListener(ContainerListener l)
          添加指定容器的侦听器,以接收来自此容器的容器事件。
protected  void addImpl(Component comp, Object constraints, int index)
          将指定组件添加到此容器的指定索引所在的位置上。
 void addNotify()
          通过将这个 Container 连接到本机屏幕资源,使其可以显示。
 void addPropertyChangeListener(PropertyChangeListener listener)
          将一个 PropertyChangeListener 添加到侦听器列表中。
 void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
          将一个 PropertyChangeListener 添加到某个指定属性的侦听器列表中。
 void applyComponentOrientation(ComponentOrientation o)
          设置此容器和其中包含的所有组件的 ComponentOrientation 属性。
 boolean areFocusTraversalKeysSet(int id)
          返回是否已经为此 Container 明确定义了用于给定焦点遍历操作的焦点遍历键的 Set。
 int countComponents()
          已过时。 从 JDK version 1.1 开始,用 etComponentCount() 取代。
 void deliverEvent(Event e)
          已过时。 从 JDK version 1.1 开始,用 dispatchEvent(AWTEvent e) 取代
 void doLayout()
          使此容器布置其组件。
 Component findComponentAt(int x, int y)
          对包含指定位置的可视子组件进行定位。
 Component findComponentAt(Point p)
          对包含指定点的可视子组件进行定位。
 float getAlignmentX()
          返回沿 x 轴的对齐方式。
 float getAlignmentY()
          返回沿 y 轴的对齐方式。
 Component getComponent(int n)
          获取此容器中的第 n 个组件。
 Component getComponentAt(int x, int y)
          对包含 x,y 位置的组件进行定位。
 Component getComponentAt(Point p)
          获取包含指定点的组件。
 int getComponentCount()
          获取此面板中的组件数。
 Component[] getComponents()
          获取此容器中的所有组件。
 int getComponentZOrder(Component comp)
          返回容器内组件的 z 顺序索引。
 ContainerListener[] getContainerListeners()
          返回已在此容器上注册的所有容器侦听器的数组。
 Set<AWTKeyStroke> getFocusTraversalKeys(int id)
          为此 Container 的给定遍历操作返回焦点遍历键的 Set。
 FocusTraversalPolicy getFocusTraversalPolicy()
          返回焦点遍历策略,用于管理此 Container 子组件的键盘遍历;如果此 Container 不是一个焦点循环根,则返回 null。
 Insets getInsets()
          确定此容器的 insets,它指示容器边框的大小。
 LayoutManager getLayout()
          获取此容器的布局管理器。
<T extends EventListener>
T[]
getListeners(Class<T> listenerType)
          返回当前已在此 Container 上注册为 FooListener 的所有对象的数组。
 Dimension getMaximumSize()
          返回此容器的最大大小。
 Dimension getMinimumSize()
          返回此容器的最小大小。
 Point getMousePosition(boolean allowChildren)
          如果 Container 位于鼠标指针下,则返回鼠标指针在此 Container 的坐标中的位置,否则返回 null
 Dimension getPreferredSize()
          返回此容器的首选大小。
 Insets insets()
          已过时。 从 JDK version 1.1 开始,用 getInsets() 取代。
 void invalidate()
          使容器失效。
 boolean isAncestorOf(Component c)
          检查该组件是否包含在此容器的组件层次结构中。
 boolean isFocusCycleRoot()
          返回此 Container 是否是某个焦点遍历循环的根。
 boolean isFocusCycleRoot(Container container)
          返回指定的 Container 是否是此 Container 的焦点遍历循环的焦点循环根。
 boolean isFocusTraversalPolicyProvider()
          返回此容器是否提供焦点遍历策略。
 boolean isFocusTraversalPolicySet()
          返回是否为此 Container 明确设置焦点遍历策略。
 void layout()
          已过时。 从 JDK version 1.1,用 doLayout() 取代。
 void list(PrintStream out, int indent)
          将此容器的清单打印到指定输出流。
 void list(PrintWriter out, int indent)
          将一个列表打印到指定打印编写器,从指定缩排位置开始。
 Component locate(int x, int y)
          已过时。 从 JDK version 1.1 开始,用 getComponentAt(int, int) 取代。
 Dimension minimumSize()
          已过时。 从 JDK version 1.1 开始,用 getMinimumSize() 取代。
 void paint(Graphics g)
          绘制容器。
 void paintComponents(Graphics g)
          绘制此容器中的每个组件。
protected  String paramString()
          返回表示此 Container 的状态的字符串。
 Dimension preferredSize()
          已过时。 从 JDK version 1.1 开始,用 getPreferredSize() 取代。
 void print(Graphics g)
          打印容器。
 void printComponents(Graphics g)
          打印此容器中的每个组件。
protected  void processContainerEvent(ContainerEvent e)
          通过将发生在此容器上的容器事件指派给所有已注册的 ContainerListener 对象来处理这些事件。
protected  void processEvent(AWTEvent e)
          处理关于此容器的事件。
 void remove(Component comp)
          从此容器中移除指定组件。
 void remove(int index)
          从此容器中移除 index 指定的组件。
 void removeAll()
          从此容器中移除所有组件。
 void removeContainerListener(ContainerListener l)
          移除指定容器的侦听器,从而不再接收来自此容器的容器事件。
 void removeNotify()
          通过移除此 Container 到其本机屏幕资源的连接,使其不可显示。
 void setComponentZOrder(Component comp, int index)
          将指定组件移动到容器中指定的 z 顺序索引。
 void setFocusCycleRoot(boolean focusCycleRoot)
          设置此 Container 是否是某个焦点遍历循环的根。
 void setFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes)
          为此 Container 的给定遍历操作设置焦点遍历键。
 void setFocusTraversalPolicy(FocusTraversalPolicy policy)
          如果此 Container 是一个焦点循环根,则设置将管理此 Container 的子代的键盘遍历的焦点遍历策略。
 void setFocusTraversalPolicyProvider(boolean provider)
          设置是否将用此容器提供焦点遍历策略。
 void setFont(Font f)
          设置此容器的字体。
 void setLayout(LayoutManager mgr)
          设置此容器的布局管理器。
 void transferFocusBackward()
          将焦点转移到前一个组件,就好像此 Component 曾是焦点所有者。
 void transferFocusDownCycle()
          将焦点向下传输一个焦点遍历循环。
 void update(Graphics g)
          更新容器。
 void validate()
          验证此容器及其所有子组件。
protected  void validateTree()
          递归继承容器树,对于所有被标记为需要重新计算布局的子树(标记为无效的那些子树)重新计算布局。
 
从类 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, getPeer, 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, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusUpCycle
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

Container

public Container()
构造一个新的 Container。可以直接扩展 Container,但在这种情况下是轻量级的,并且它必须被位于本机组件树中更高处的某一个父容器包含。(比如说 Frame)。

方法详细信息

getComponentCount

public int getComponentCount()
获取此面板中的组件数。

返回:
此面板中的组件数。
从以下版本开始:
JDK1.1
另请参见:
getComponent(int)

countComponents

@Deprecated
public int countComponents()
已过时。 从 JDK version 1.1 开始,用 etComponentCount() 取代。


getComponent

public Component getComponent(int n)
获取此容器中的第 n 个组件。

参数:
n - 要获取的组件的索引。
返回:
此容器中的 nth 组件。
抛出:
ArrayIndexOutOfBoundsException - 如果 nth 值不存在。

getComponents

public Component[] getComponents()
获取此容器中的所有组件。

返回:
此容器中的所有组件的数组。

getInsets

public Insets getInsets()
确定此容器的 insets,它指示容器边框的大小。

例如,Frame 对象有一个顶端 inset,它对应于窗体的标题栏的高度。

返回:
此容器的 inset。
从以下版本开始:
JDK1.1
另请参见:
Insets, LayoutManager

insets

@Deprecated
public Insets insets()
已过时。 从 JDK version 1.1 开始,用 getInsets() 取代。


add

public Component add(Component comp)
将指定组件追加到此容器的尾部。这是一个适用于 addImpl(java.awt.Component, java.lang.Object, int) 的便捷方法。

注:如果已经将某个组件添加到显示的容器中,则必须在此容器上调用 validate,以显示新的组件。如果添加多个组件,那么可以在添加所有组件之后,通过只调用一次 validate 来提高效率。

参数:
comp - 要添加的组件
返回:
component 参数
抛出:
NullPointerException - 如果 compnull
另请参见:
addImpl(java.awt.Component, java.lang.Object, int), validate(), JComponent.revalidate()

add

public Component add(String name,
                     Component comp)
将指定组件添加到此容器中。这是一个适用于 addImpl(java.awt.Component, java.lang.Object, int) 的便捷方法。

从 JDK version 1.1 开始,此方法已过时。请使用 add(Component, Object) 方法代替。

抛出:
NullPointerException - 如果 compnull
另请参见:
add(Component, Object)

add

public Component add(Component comp,
                     int index)
将指定组件添加到此容器的给定位置上。这是一个适用于 addImpl(java.awt.Component, java.lang.Object, int) 的便捷方法。

注:如果已经将某个组件添加到显示的容器中,则必须在此容器上调用 validate,以显示新的组件。如果添加多个组件,那么可以在添加所有组件之后,通过只调用一次 validate 来提高效率。

参数:
comp - 要添加的组件
index - 插入组件的位置,-1 表示将组件追加到尾部
返回:
组件 comp
抛出:
NullPointerException - 如果 compnull
IllegalArgumentException - 如果 index 无效(有关细节请参阅 addImpl(java.awt.Component, java.lang.Object, int)
另请参见:
addImpl(java.awt.Component, java.lang.Object, int), remove(int), validate(), JComponent.revalidate()

setComponentZOrder

public void setComponentZOrder(Component comp,
                               int index)
将指定组件移动到容器中指定的 z 顺序索引。z 顺序确定了绘制组件的顺序;具有最高 z 顺序的组件将第一个绘制,而具有最低 z 顺序的组件将最后一个绘制。在组件重叠的地方,具有较低 z 顺序的组件将覆盖具有较高 z 顺序的组件。

如果组件是其他某个 container 的子组件,则在将它添加到此容器之前,从该容器中移除它。此方法与 java.awt.Container.add(Component, int) 之间的重要不同是,在将组件从其以前的容器中移除时,此方法不对该组件调用 removeNotify,除非有此必要,并且基础本机窗口系统允许这样做。因此,如果组件拥有键盘焦点,那么在移动到新的位置上时,它会维持该焦点。

要保证此属性只应用于轻量级的非 Container 组件。

:并不是所有的平台都支持在不调用 removeNotify 的情况下,将重量级组件的 z 顺序从一个容器更改到另一个容器中。无法检测某个平台是否支持这一点,因此开发人员不应该作出任何假设。

参数:
comp - 要移动的组件
index - 在容器的列表中插入组件的位置,其中 getComponentCount() 指追加到尾部
抛出:
NullPointerException - 如果 compnull
IllegalArgumentException - 如果 comp 是该容器的父容器之一
IllegalArgumentException - 如果在容器间移动的 index 不在 [0, getComponentCount()] 范围内,或者在容器内移动的 index 不在 [0, getComponentCount()-1] 范围内
IllegalArgumentException - 如果将一个容器添加给其自身
IllegalArgumentException - 如果将 Window 添加到容器中
从以下版本开始:
1.5
另请参见:
getComponentZOrder(java.awt.Component)

getComponentZOrder

public int getComponentZOrder(Component comp)
返回容器内组件的 z 顺序索引。组件在 z 顺序层次结构中所处的位置越高,它的索引就越低。具有最低 z 顺序索引的组件最后一个被绘制,而它在层次结构中高于其他所有子组件。

参数:
comp - 正查询的组件
返回:
组件的 z 顺序索引;如果 component 为 null 或者不属于该容器,则返回 -1
从以下版本开始:
1.5
另请参见:
setComponentZOrder(java.awt.Component, int)

add

public void add(Component comp,
                Object constraints)
将指定的组件添加到此容器的尾部。同时通知布局管理器使用指定的 constraints 对象将组件添加到此容器的布局中。这是一个适用于 addImpl(java.awt.Component, java.lang.Object, int) 的便捷方法。

注:如果已经将某个组件添加到显示的容器中,则必须在此容器上调用 validate,以显示新的组件。如果添加多个组件,那么可以在添加所有组件之后,通过只调用一次 validate 来提高效率。

参数:
comp - 要添加的组件
constraints - 表示此组件的布局约束的对象
抛出:
NullPointerException - 如果 compnull
从以下版本开始:
JDK1.1
另请参见:
addImpl(java.awt.Component, java.lang.Object, int), validate(), JComponent.revalidate(), LayoutManager

add

public void add(Component comp,
                Object constraints,
                int index)
使用指定约束,将指定组件添加到此容器的指定索引所在的位置上。还要通知布局管理器,使用指定的约束对象将组件添加到此容器的布局中。这是一个适用于 addImpl(java.awt.Component, java.lang.Object, int) 的便捷方法。

注:如果已经将某个组件添加到显示的容器中,则必须在此容器上调用 validate,以显示新的组件。如果添加多个组件,那么可以在添加所有组件之后,通过只调用一次 validate 来提高效率。

参数:
comp - 要添加的组件
constraints - 表示此组件的布局约束的对象
index - 容器列表中插入组件的位置;-1 表示将组件插入尾部
抛出:
NullPointerException - 如果 compnull
IllegalArgumentException - 如果 index 无效(有关细节请参阅 addImpl(java.awt.Component, java.lang.Object, int)
另请参见:
addImpl(java.awt.Component, java.lang.Object, int), validate(), JComponent.revalidate(), remove(int), LayoutManager

addImpl

protected void addImpl(Component comp,
                       Object constraints,
                       int index)
将指定组件添加到此容器的指定索引所在的位置上。此方法还通知布局管理器,通过 addLayoutComponent 方法,使用指定的约束对象将组件添加到此容器的布局中。

这些约束是由正使用的特定布局管理器定义的。例如,BorderLayout 类定义了五个约束:BorderLayout.NORTHBorderLayout.SOUTHBorderLayout.EASTBorderLayout.WESTBorderLayout.CENTER

GridBagLayout 类需要一个 GridBagConstraints 对象。如果传递正确的约束对象类型时失败,则会导致 IllegalArgumentException

如果当前布局管理器实现了 LayoutManager2,则在其上调用 LayoutManager2.addLayoutComponent(Component,Object)。如果当前布局管理器没有实现 LayoutManager2,并且约束是一个 String,则在其上调用 LayoutManager.addLayoutComponent(String,Component)

如果该组件不是此容器的祖先容器,并且有一个非 null 父组件,则在将该组件添加到此容器之前,从其当前父组件中移除它。

在其他所有添加方法引用此方法时,如果某个程序需要追踪每个添加到容器的请求,那么这就是要重写的方法。被重写的方法通常应该包括一个对该方法的超类版本的调用:

super.addImpl(comp, constraints, index)

参数:
comp - 要添加的组件
constraints - 表示此组件的布局约束的对象
容器列表中插入组件的位置;其中 - -1 表示将组件追加到尾部
抛出:
IllegalArgumentException - 如果 index 无效;如果 comp 是此容器的子容器,则有效范围是 [-1, getComponentCount()-1];如果组件不是此容器的子容器,则有效范围是 [-1, getComponentCount()]
IllegalArgumentException - 如果 comp 是此容器的祖先容器
IllegalArgumentException - 如果向容器添加一个窗口
NullPointerException - 如果 compnull
从以下版本开始:
JDK1.1
另请参见:
add(Component), add(Component, int), add(Component, java.lang.Object), LayoutManager, LayoutManager2

remove

public void remove(int index)
从此容器中移除 index 指定的组件。此方法还通知布局管理器,通过 removeLayoutComponent 方法从此容器的布局中移除该组件。

注:如果已经从已显示的容器中移除一个组件,则必须在该容器上调用 validate() 来反映更改。如果移除多个组件,那么可以在移除所有组件之后,通过只调用一次 validate() 来提高效率。

参数:
index - 要移除的组件的索引
抛出:
ArrayIndexOutOfBoundsException - 如果 index 不在范围 [0, getComponentCount()-1]
从以下版本开始:
JDK1.1
另请参见:
add(java.awt.Component), validate(), getComponentCount()

remove

public void remove(Component comp)
从此容器中移除指定组件。此方法还通知布局管理器,通过 removeLayoutComponent 方法从此容器的布局中移除该组件。

注:如果已经从已显示的容器中移除一个组件,则必须在该容器上调用 validate() 来反映更改。如果移除多个组件,那么可以在移除所有组件之后,通过只调用一次 validate() 来提高效率。

参数:
comp - 要移除的组件
另请参见:
add(java.awt.Component), validate(), remove(int)

removeAll

public void removeAll()
从此容器中移除所有组件。此方法还通知布局管理器,通过 removeLayoutComponent 方法从此容器的布局中移除这些组件。

另请参见:
add(java.awt.Component), remove(int)

getLayout

public LayoutManager getLayout()
获取此容器的布局管理器。

另请参见:
doLayout(), setLayout(java.awt.LayoutManager)

setLayout

public void setLayout(LayoutManager mgr)
设置此容器的布局管理器。

参数:
mgr - 指定的布局管理器
另请参见:
doLayout(), getLayout()

doLayout

public void doLayout()
使此容器布置其组件。大部分程序不应该直接调用此方法,而是应该调用 validate 方法。

覆盖:
Component 中的 doLayout
从以下版本开始:
JDK1.1
另请参见:
LayoutManager.layoutContainer(java.awt.Container), setLayout(java.awt.LayoutManager), validate()

layout

@Deprecated
public void layout()
已过时。 从 JDK version 1.1,用 doLayout() 取代。

覆盖:
Component 中的 layout

invalidate

public void invalidate()
使容器失效。该容器及其之上的所有父容器被标记为需要重新布置。此方法经常被调用,所以必须快速执行它。

如果在此容器上安装的 LayoutManager 是一个 LayoutManager2 实例,则在该实例上调用 LayoutManager2.invalidateLayout(Container),并提供此 Container 作为参数。

覆盖:
Component 中的 invalidate
另请参见:
validate(), layout(), LayoutManager, LayoutManager2.invalidateLayout(Container)

validate

public void validate()
验证此容器及其所有子组件。

使用 validate 方法会使容器再次布置其子组件。已经显示容器后,在修改此容器的子组件的时候(在容器中添加或移除组件,或者更改与布局相关的信息),应该调用上述方法。

如果此 Container 无效,则此方法将调用 validateTree 方法,并将此 Container 标记为有效。否则不执行任何动作。

覆盖:
Component 中的 validate
另请参见:
add(java.awt.Component), Component.invalidate(), JComponent.revalidate(), validateTree()

validateTree

protected void validateTree()
递归继承容器树,对于所有被标记为需要重新计算布局的子树(标记为无效的那些子树)重新计算布局。同步应该由调用本方法的方法 (validate) 提供。

另请参见:
doLayout(), validate()

setFont

public void setFont(Font f)
设置此容器的字体。

覆盖:
Component 中的 setFont
参数:
f - 将成为此容器的字体的字体。
从以下版本开始:
JDK1.0
另请参见:
Component.getFont()

getPreferredSize

public Dimension getPreferredSize()
返回此容器的首选大小。如果尚未通过 Component.setPreferredSize(Dimension) 显式设置首选大小,并且此 Container 有一个 non-null LayoutManager,则使用 LayoutManager.preferredLayoutSize(Container) 来计算首选大小。

注:一些实现可能缓存从 LayoutManager 返回的值。每次调用此方法时,这些缓存实现不需要在 LayoutManager 上调用 preferredLayoutSize,而是只在 Container 变得无效之后查询 LayoutManager

覆盖:
Component 中的 getPreferredSize
返回:
表示此容器的首选大小的 Dimension 实例。
另请参见:
getMinimumSize(), getMaximumSize(), getLayout(), LayoutManager.preferredLayoutSize(Container), Component.getPreferredSize()

preferredSize

@Deprecated
public Dimension preferredSize()
已过时。 从 JDK version 1.1 开始,用 getPreferredSize() 取代。

覆盖:
Component 中的 preferredSize

getMinimumSize

public Dimension getMinimumSize()
返回此容器的最小大小。如果尚未通过 Component.setMinimumSize(Dimension) 显式设置最小大小,并且此 Container 有一个 non-null LayoutManager,则使用 LayoutManager.minimumLayoutSize(Container) 来计算最小大小。

注:一些实现可能缓存从 LayoutManager 返回的值。每次调用此方法时,这些缓存实现不需要在 LayoutManager 上调用 minimumLayoutSize,而是只在 Container 变得无效之后查询 LayoutManager

覆盖:
Component 中的 getMinimumSize
返回:
表示此容器的最小大小的 Dimension 实例。
从以下版本开始:
JDK1.1
另请参见:
getPreferredSize(), getMaximumSize(), getLayout(), LayoutManager.minimumLayoutSize(Container), Component.getMinimumSize()

minimumSize

@Deprecated
public Dimension minimumSize()
已过时。 从 JDK version 1.1 开始,用 getMinimumSize() 取代。

覆盖:
Component 中的 minimumSize

getMaximumSize

public Dimension getMaximumSize()
返回此容器的最大大小。如果尚未通过 Component.setMaximumSize(Dimension) 显式设置最大大小,并且在此 Container 上安装的 LayoutManager 是一个 LayoutManager2 实例,则使用 LayoutManager2.maximumLayoutSize(Container) 来计算最大大小。

注:一些实现可能缓存从 LayoutManager2 返回的值。每次调用此方法时,这些缓存实现不需要在 LayoutManager2 上调用 maximumLayoutSize,而是只在 Container 变得无效之后查询 LayoutManager2

覆盖:
Component 中的 getMaximumSize
返回:
表示此容器最大大小的 Dimension 实例。
另请参见:
getPreferredSize(), getMinimumSize(), getLayout(), LayoutManager2.maximumLayoutSize(Container), Component.getMaximumSize()

getAlignmentX

public float getAlignmentX()
返回沿 x 轴的对齐方式。这指出了相对于其他组件将如何对齐该组件。该值应该在 0 到 1 之间,其中,0 表示根据原点进行对齐,1 表示根据距原点最远的地方对齐,0.5 表示从中间对齐等等。

覆盖:
Component 中的 getAlignmentX

getAlignmentY

public float getAlignmentY()
返回沿 y 轴的对齐方式。这指出相对于其他组件将如何排列该组件。该值应该在 0 到 1 之间,其中,0 表示根据原点进行对齐,1 表示根据距原点最远的地方对齐,0.5 表示从中间对齐等等。

覆盖:
Component 中的 getAlignmentY

paint

public void paint(Graphics g)
绘制容器。该方法将 paint 转发给任意一个此容器子组件的轻量级组件。如果重新实现此方法,那么应该调用 super.paint(g) 方法,从而可以正确地呈现轻量级组件。如果通过 g 中的当前剪切设置完全剪切某个子组件,则不会将 paint() 转发给这个子组件。

覆盖:
Component 中的 paint
参数:
g - 指定的 Graphics 窗口
另请参见:
Component.update(Graphics)

update

public void update(Graphics g)
更新容器。该方法将 update 方法转发给任意一个此容器子组件的轻量级组件。如果重新实现此方法,那么应该调用 super.update(g) 方法,从而可以正确地呈现轻量级组件。如果通过 g 中的当前剪切设置完全剪切某个子组件,则不会将 update() 转发给这个子组件。

覆盖:
Component 中的 update
参数:
g - 指定的 Graphics 窗口
另请参见:
Component.update(Graphics)

print

public void print(Graphics g)
打印容器。该方法将 print 方法转发给任意一个此容器子组件的轻量级组件。如果重新实现此方法,那么应该调用 super.print(g) 方法,从而可以正确地呈现轻量级组件。如果通过 g 中的当前剪切设置完全剪切某个子组件,则不会将 print() 转发给这个子组件。

覆盖:
Component 中的 print
参数:
g - 指定的 Graphics 窗口
另请参见:
Component.update(Graphics)

paintComponents

public void paintComponents(Graphics g)
绘制此容器中的每个组件。

参数:
g - 图形上下文。
另请参见:
Component.paint(java.awt.Graphics), Component.paintAll(java.awt.Graphics)

printComponents

public void printComponents(Graphics g)
打印此容器中的每个组件。

参数:
g - 图形上下文。
另请参见:
Component.print(java.awt.Graphics), Component.printAll(java.awt.Graphics)

addContainerListener

public void addContainerListener(ContainerListener l)
添加指定容器的侦听器,以接收来自此容器的容器事件。如果 l 为 null,则不会抛出异常,并且不执行任何动作。 有关 AWT 的线程模型的细节信息,请参阅 AWT 线程问题

参数:
l - 容器侦听器
另请参见:
removeContainerListener(java.awt.event.ContainerListener), getContainerListeners()

removeContainerListener

public void removeContainerListener(ContainerListener l)
移除指定容器的侦听器,从而不再接收来自此容器的容器事件。如果 l 为 null,则不会抛出异常,并且不执行任何动作。 有关 AWT 的线程模型的细节信息,请参阅 AWT 线程问题

参数:
l - 容器侦听器
另请参见:
addContainerListener(java.awt.event.ContainerListener), getContainerListeners()

getContainerListeners

public ContainerListener[] getContainerListeners()
返回已在此容器上注册的所有容器侦听器的数组。

返回:
此容器的所有 ContainerListener,如果没有当前已注册的容器侦听器,则返回一个空数组
从以下版本开始:
1.4
另请参见:
addContainerListener(java.awt.event.ContainerListener), removeContainerListener(java.awt.event.ContainerListener)

getListeners

public <T extends EventListener> T[] getListeners(Class<T> listenerType)
返回当前已在此 Container 上注册为 FooListener 的所有对象的数组。FooListener 是使用 addFooListener 方法注册的。

可以用一个类字面值(比如 FooListener.class)指定 listenerType 参数。例如,可以使用以下代码查询 Container c,以获得该容器的侦听器:

ContainerListener[] cls = (ContainerListener[])(c.getListeners(ContainerListener.class));
如果不存在这样的侦听器,则此方法将返回一个空数组。

覆盖:
Component 中的 getListeners
参数:
listenerType - 所请求侦听器的类型;该参数应该指定一个从 java.util.EventListener 继承的接口
返回:
在此容器上注册为 FooListener 的所有对象的数组,如果没有添加这样的侦听器,则返回一个空数组
抛出:
ClassCastException - 如果 listenerType 没有指定实现 java.util.EventListener 的类或接口
从以下版本开始:
1.3
另请参见:
getContainerListeners()

processEvent

protected void processEvent(AWTEvent e)
处理关于此容器的事件。如果事件是一个 ContainerEvent,那么将调用 processContainerEvent 方法,否则将调用其超类的 processEvent 方法。

注意,如果事件参数为 null,则行为是不确定的,并且可能导致异常。

覆盖:
Component 中的 processEvent
参数:
e - 事件
另请参见:
Component.processComponentEvent(java.awt.event.ComponentEvent), Component.processFocusEvent(java.awt.event.FocusEvent), Component.processKeyEvent(java.awt.event.KeyEvent), Component.processMouseEvent(java.awt.event.MouseEvent), Component.processMouseMotionEvent(java.awt.event.MouseEvent), Component.processInputMethodEvent(java.awt.event.InputMethodEvent), Component.processHierarchyEvent(java.awt.event.HierarchyEvent), Component.processMouseWheelEvent(java.awt.event.MouseWheelEvent)

processContainerEvent

protected void processContainerEvent(ContainerEvent e)
通过将发生在此容器上的容器事件指派给所有已注册的 ContainerListener 对象来处理这些事件。注:直到为此组件启用容器事件,才调用此方法;这发生在出现以下情况之一时:

注意,如果事件参数为 null,则行为是不确定的,并且可能导致异常。

参数:
e - 容器事件
另请参见:
Component.enableEvents(long)

deliverEvent

@Deprecated
public void deliverEvent(Event e)
已过时。 从 JDK version 1.1 开始,用 dispatchEvent(AWTEvent e) 取代

覆盖:
Component 中的 deliverEvent

getComponentAt

public Component getComponentAt(int x,
                                int y)
对包含 x,y 位置的组件进行定位。在组件中出现重叠的情况下,返回位于最顶端的子组件。这是通过查找最接近于索引 0 并且通过 Component.contains() 要求包含给定点的组件来确定的,但拥有本机同位体的组件优先于那些没有同位体的组件(也就是轻量级组件)。

覆盖:
Component 中的 getComponentAt
参数:
x - x 坐标
y - y 坐标
返回:
如果组件不包含该位置上,则返回 null。如果所请求的点上没有子组件,并且这个点在容器的边界内,则返回容器自身;否则返回最顶端的子组件。
从以下版本开始:
JDK1.1
另请参见:
Component.contains(int, int)

locate

@Deprecated
public Component locate(int x,
                                   int y)
已过时。 从 JDK version 1.1 开始,用 getComponentAt(int, int) 取代。

覆盖:
Component 中的 locate

getComponentAt

public Component getComponentAt(Point p)
获取包含指定点的组件。

覆盖:
Component 中的 getComponentAt
参数:
p - 点。
返回:
包含这个点的组件,如果组件不包含这个点,则返回 null
从以下版本开始:
JDK1.1
另请参见:
Component.contains(int, int)

getMousePosition

public Point getMousePosition(boolean allowChildren)
                       throws HeadlessException
如果 Container 位于鼠标指针下,则返回鼠标指针在此 Container 的坐标中的位置,否则返回 null。此方法类似于 Component.getMousePosition(),不过它可能还要考虑 Container 的子组件。如果 allowChildrenfalse,则仅当鼠标指针直接位于 Container 上方,而不是位于被 Container 的子组件掩盖的那部分上方时,此方法才返回一个非 null 值。如果 allowChildrentrue,且鼠标指针位于 Container 或其任意子代的上方时,此方法才返回一个非 null 值。

参数:
allowChildren - 如果将子组件也考虑进去,则此参数为 true
返回:
相对于 Component 的鼠标坐标,或者 null
抛出:
HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 true
从以下版本开始:
1.5
另请参见:
Component.getMousePosition()

findComponentAt

public Component findComponentAt(int x,
                                 int y)
对包含指定位置的可视子组件进行定位。在组件中出现重叠的情况下,返回位于最顶端的子组件。如果包含的子组件是一个 Container,则此方法将继续搜索,以找到嵌套最深的子组件。在搜索期间忽略不可见的组件。

findComponentAt 方法不同于 getComponentAt 方法,getComponentAt 方法只搜索 Container 的直接子组件;如果包含的组件是一个 Container,则 findComponentAt 方法将搜索子容器,以找到嵌套的组件。

参数:
x - x 坐标
y - y 坐标
返回:
如果组件不包含这个位置上,则返回 null。如果所请求的点上没有子组件,并且这个点在容器的边界内,则返回容器自身。
从以下版本开始:
1.2
另请参见:
Component.contains(int, int), getComponentAt(int, int)

findComponentAt

public Component findComponentAt(Point p)
对包含指定点的可视子组件进行定位。在组件中出现重叠的情况下,返回位于最顶端的子组件。如果包含的子组件是一个 Container,则此方法将继续搜索,以找到嵌套最深的子组件。在搜索期间忽略不可见的组件。

findComponentAt 方法不同于 getComponentAt 方法,getComponentAt 方法只搜索 Container 的直接子组件;如果包含的组件是一个 Container,则 findComponentAt 方法将搜索子容器,以找到嵌套的组件。

参数:
p - 点。
返回:
如果组件没有包含该位置,则返回 null。如果所请求的点上没有子组件,并且这个点在容器的边界内,则返回容器自身。
从以下版本开始:
1.2
另请参见:
Component.contains(int, int), getComponentAt(int, int)

addNotify

public void addNotify()
通过将这个 Container 连接到本机屏幕资源,使其可以显示。使容器变得可以显示会使其所有子容器都变得可以显示。此方法是通过工具包内部调用的,不应该通过程序直接调用它。

覆盖:
Component 中的 addNotify
另请参见:
Component.isDisplayable(), removeNotify()

removeNotify

public void removeNotify()
通过移除此 Container 到其本机屏幕资源的连接,使其不可显示。使容器变得不可显示会使其所有子容器都变得不可显示。此方法是通过工具包内部调用的,不应该通过程序直接调用它。

覆盖:
Component 中的 removeNotify
另请参见:
Component.isDisplayable(), addNotify()

isAncestorOf

public boolean isAncestorOf(Component c)
检查该组件是否包含在此容器的组件层次结构中。

参数:
c - 组件
返回:
如果它是一个祖先级组件,则返回 true;否则返回 false
从以下版本开始:
JDK1.1

paramString

protected String paramString()
返回表示此 Container 的状态的字符串。此方法仅在进行调试的时候使用,对于各个实现,所返回字符串的内容和格式可能有所不同。返回的字符串可能为空,但不可能为 null

覆盖:
Component 中的 paramString
返回:
此容器的参数字符串

list

public void list(PrintStream out,
                 int indent)
将此容器的清单打印到指定输出流。该清单起始于指定缩排位置。

使用 indent+1 的缩排来打印容器的直接子组件。这些子组件的子组件是在 indent+2 上打印的,依此类推。

覆盖:
Component 中的 list
参数:
out - 打印流
indent - 缩排的空格数
从以下版本开始:
JDK1.0
另请参见:
Component.list(java.io.PrintStream, int)

list

public void list(PrintWriter out,
                 int indent)
将一个列表打印到指定打印编写器,从指定缩排位置开始。

使用 indent+1 的缩排来打印容器的直接子组件。这些子组件的子组件是在 indent+2 上打印的,依此类推。

覆盖:
Component 中的 list
参数:
out - 打印编写器
indent - 缩排的空格数
从以下版本开始:
JDK1.1
另请参见:
Component.list(java.io.PrintWriter, int)

setFocusTraversalKeys

public void setFocusTraversalKeys(int id,
                                  Set<? extends AWTKeyStroke> keystrokes)
为此 Container 的给定遍历操作设置焦点遍历键。

Container 的焦点遍历键的默认值与实现相关。Sun 建议特定本机平台的所有实现都使用相同的默认值。对 Windows 和 Unix 的建议列出如下。这些建议用于 Sun AWT 实现中。

标识符 含义 默认值
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 向下移动一个焦点遍历循环
要禁用一个遍历键,可以使用空 Set;建议使用 Collections.EMPTY_SET。

使用 AWTKeyStroke API,客户机代码可以指定在两个特定 KeyEvents(KEY_PRESSED 或 KEY_RELEASED)中的哪一个上进行焦点遍历操作。不管指定的是哪一个 KeyEvent,所有与焦点遍历键相关的 KeyEvent(包括相关 KEY_TYPED 事件)都将被使用,并且不将它们指派给任何 Container。在将事件映射到焦点遍历操作,或者将同一事件映射到多个默认焦点遍历操作时,指定 KEY_TYPED 事件是一个运行时错误。

如果为 Set 指定 null 值,则此 Container 将继承其父辈的 Set。如果此 Container 的所有祖先都为 Set 指定了 null 值,则使用当前 KeyboardFocusManager 的默认 Set。

覆盖:
Component 中的 setFocusTraversalKeys
参数:
id - KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS、KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 或 KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS 之一
keystrokes - 用于指定操作的 AWTKeyStroke 的 Set
抛出:
IllegalArgumentException - 如果 id 不是 KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS、KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 或 KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS 之一;或者 keystroke 中包含 null;或者 keystroke 中的任何 Object 都不是 AWTKeyStroke;或者任何 keystroke 都表示一个 KEY_TYPED 事件;或者任何 keystroke 总是映射到此 Container 的另一个焦点遍历操作
从以下版本开始:
1.4
另请参见:
getFocusTraversalKeys(int), KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS, KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS

getFocusTraversalKeys

public Set<AWTKeyStroke> getFocusTraversalKeys(int id)
为此 Container 的给定遍历操作返回焦点遍历键的 Set。(有关每个键的完整描述,请参阅 setFocusTraversalKeys。)

如果没有为此 Container 明确定义了遍历键的 Set,则返回此 Container 的父 Set。如果没有为此 Container 的任何祖先明确定义 Set,则返回当前 KeyboardFocusManager 的默认 Set。

覆盖:
Component 中的 getFocusTraversalKeys
参数:
id - KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS、KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 或 KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS 之一
返回:
用于指定操作的 AWTKeyStrokes 的 Set。此 Set 将是不可修改的,并且可能是空的。从不返回 null。
抛出:
IllegalArgumentException - 如果 id 不是 KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS、KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 或 KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS 之一
从以下版本开始:
1.4
另请参见:
setFocusTraversalKeys(int, java.util.Set), KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS, KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS

areFocusTraversalKeysSet

public boolean areFocusTraversalKeysSet(int id)
返回是否已经为此 Container 明确定义了用于给定焦点遍历操作的焦点遍历键的 Set。如果此方法返回 false,则此 Container 从一个祖先或当前 KeyboardFocusManager 那里继承 Set。

覆盖:
Component 中的 areFocusTraversalKeysSet
参数:
id - KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS、KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 或 KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS 之一
返回:
如果已经为此 Component 明确定义了用于给定焦点遍历操作的焦点遍历键的 Set,则返回 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

public boolean isFocusCycleRoot(Container container)
返回指定的 Container 是否是此 Container 的焦点遍历循环的焦点循环根。每个焦点遍历循环只有一个焦点循环根,并且不是焦点循环根的每个 Container 只属于一个焦点遍历循环。那些是焦点循环根的容器属于两个循环:一个根植于 Container 自身中,另一个根植于此 Container 的最近的焦点循环根祖先中。在这种情况下,对于这两种 Container,此方法都将返回 true

覆盖:
Component 中的 isFocusCycleRoot
参数:
container - 要测试的 Container
返回:
如果指定 Container 是此 Container 的一个焦点循环根,则返回 true;否则返回 false
从以下版本开始:
1.4
另请参见:
isFocusCycleRoot()

transferFocusBackward

public void transferFocusBackward()
从类 Component 复制的描述
将焦点转移到前一个组件,就好像此 Component 曾是焦点所有者。

覆盖:
Component 中的 transferFocusBackward
另请参见:
Component.requestFocus()

setFocusTraversalPolicy

public void setFocusTraversalPolicy(FocusTraversalPolicy policy)
如果此 Container 是一个焦点循环根,则设置将管理此 Container 的子代的键盘遍历的焦点遍历策略。如果参数为 null,则此 Container 将继承其焦点循环根祖先的策略。如果参数为非 null 值,则此策略将由所有焦点循环根的子组件继承,这些子组件没有自己的键盘遍历策略(它们将以递归方式管理其焦点循环根的子组件)。

如果此 Container 不是一个焦点循环根,要记得该策略,但直到此 Container 成为焦点循环根,此 Container 或其他任何 Container 才可以使用或继承此策略。

参数:
policy - 此 Container 的新的焦点遍历策略
从以下版本开始:
1.4
另请参见:
getFocusTraversalPolicy(), setFocusCycleRoot(boolean), isFocusCycleRoot(java.awt.Container)

getFocusTraversalPolicy

public FocusTraversalPolicy getFocusTraversalPolicy()
返回焦点遍历策略,用于管理此 Container 子组件的键盘遍历;如果此 Container 不是一个焦点循环根,则返回 null。如果没有明确为此 Container 设置遍历策略,则返回此 Container 的焦点循环根祖先的策略。

返回:
此 Container 的焦点遍历策略,如果此 Container 不是一个焦点循环根,则返回 null。
从以下版本开始:
1.4
另请参见:
setFocusTraversalPolicy(java.awt.FocusTraversalPolicy), setFocusCycleRoot(boolean), isFocusCycleRoot(java.awt.Container)

isFocusTraversalPolicySet

public boolean isFocusTraversalPolicySet()
返回是否为此 Container 明确设置焦点遍历策略。如果此方法返回 false,则此 Container 将从一个祖先那里继承其焦点遍历策略。

返回:
如果已经明确为此 Container 设置焦点遍历策略,则返回 true;否则返回 false
从以下版本开始:
1.4

setFocusCycleRoot

public void setFocusCycleRoot(boolean focusCycleRoot)
设置此 Container 是否是某个焦点遍历循环的根。一旦焦点进入某个遍历循环,它通常无法通过焦点遍历离开,除非按下向上循环键或向下循环键之一。普通遍历被限定于此 Container,该 Container 的所有子代并不是下级焦点循环根的子代。注意,FocusTraversalPolicy 可能屈服于这些约束。例如,ContainerOrderFocusTraversalPolicy 支持隐式的向下循环遍历。

指定此 Container 子代的遍历顺序的替代方法是焦点遍历策略提供者

参数:
focusCycleRoot - 指示此 Container 是否是某个焦点遍历循环的根
从以下版本开始:
1.4
另请参见:
isFocusCycleRoot(), setFocusTraversalPolicy(java.awt.FocusTraversalPolicy), getFocusTraversalPolicy(), ContainerOrderFocusTraversalPolicy, setFocusTraversalPolicyProvider(boolean)

isFocusCycleRoot

public boolean isFocusCycleRoot()
返回此 Container 是否是某个焦点遍历循环的根。一旦焦点进入某个遍历循环,它通常无法通过焦点遍历离开,除非按下向上循环键或向下循环键之一。普通遍历被限定于此 Container,该 Container 的所有子代并不是下级焦点循环根的子代。注意,FocusTraversalPolicy 可能屈服于这些约束。例如,ContainerOrderFocusTraversalPolicy 支持隐式的向下循环遍历。

返回:
此 Container 是否是某个焦点遍历循环的根
从以下版本开始:
1.4
另请参见:
setFocusCycleRoot(boolean), setFocusTraversalPolicy(java.awt.FocusTraversalPolicy), getFocusTraversalPolicy(), ContainerOrderFocusTraversalPolicy

setFocusTraversalPolicyProvider

public final void setFocusTraversalPolicyProvider(boolean provider)
设置是否将用此容器提供焦点遍历策略。将使用把该属性设置为 true 的容器来获取焦点遍历策略,而不是获取最近的焦点循环根的祖先。

参数:
provider - 指示是否将用此容器提供焦点遍历策略
从以下版本开始:
1.5
另请参见:
setFocusTraversalPolicy(java.awt.FocusTraversalPolicy), getFocusTraversalPolicy(), isFocusTraversalPolicyProvider()

isFocusTraversalPolicyProvider

public final boolean isFocusTraversalPolicyProvider()
返回此容器是否提供焦点遍历策略。如果将此属性设置为 true,那么在键盘焦点管理器搜索容器层次结构来查找焦点遍历策略,且在其他任何将此属性设置为 true 的容器之前遇到此容器或焦点循环根的时候,将使用其焦点遍历策略,而不是使用焦点循环根的策略。

返回:
如果此容器提供焦点遍历策略,则返回 true,否则返回 false
从以下版本开始:
1.5
另请参见:
setFocusTraversalPolicy(java.awt.FocusTraversalPolicy), getFocusTraversalPolicy(), setFocusCycleRoot(boolean), setFocusTraversalPolicyProvider(boolean)

transferFocusDownCycle

public void transferFocusDownCycle()
将焦点向下传输一个焦点遍历循环。如果此 Container 是一个焦点循环根,则将焦点的所有者设置为此 Container 的将成为焦点的默认 Component,并将当前焦点循环根设置为此 Container。如果此 Container 不是一个焦点循环根,则不会发生焦点遍历操作。

从以下版本开始:
1.4
另请参见:
Component.requestFocus(), isFocusCycleRoot(java.awt.Container), setFocusCycleRoot(boolean)

applyComponentOrientation

public void applyComponentOrientation(ComponentOrientation o)
设置此容器和其中包含的所有组件的 ComponentOrientation 属性。

覆盖:
Component 中的 applyComponentOrientation
参数:
o - 此容器的新组件的方向性和其中包含组件的方向性。
抛出:
NullPointerException - 如果 orientation 为 null。
从以下版本开始:
1.4
另请参见:
Component.setComponentOrientation(java.awt.ComponentOrientation), Component.getComponentOrientation()

addPropertyChangeListener

public void addPropertyChangeListener(PropertyChangeListener listener)
将一个 PropertyChangeListener 添加到侦听器列表中。该侦听器是为此类的所有边界属性注册的,其中包括以下属性: 注意,如果此 Container 正继承某个边界属性,那么不会为响应所继承属性中的更改而触发任何事件。

如果侦听器为 null,则不会抛出异常,并且不执行任何动作。

覆盖:
Component 中的 addPropertyChangeListener
参数:
listener - 要添加的 PropertyChangeListener
另请参见:
Component.removePropertyChangeListener(java.beans.PropertyChangeListener), addPropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)

addPropertyChangeListener

public void addPropertyChangeListener(String propertyName,
                                      PropertyChangeListener listener)
将一个 PropertyChangeListener 添加到某个指定属性的侦听器列表中。指定的属性可以是用户定义的,或者是以下默认属性之一: 注意,如果此 Container 正继承某个边界属性,那么不会为响应所继承属性中的更改而触发任何事件。

如果侦听器为 null,则不会抛出异常,并且不执行任何动作。

覆盖:
Component 中的 addPropertyChangeListener
参数:
propertyName - 上面列出的属性名称之一
listener - 要添加的 PropertyChangeListener
另请参见:
addPropertyChangeListener(java.beans.PropertyChangeListener), Component.removePropertyChangeListener(java.beans.PropertyChangeListener)

JavaTM 2 Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策