|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjava.awt.Component
java.awt.Container
public class Container
一般的 Abstract Window Toolkit(AWT) 容器对象是一个可包含其他 AWT 组件的组件。
添加到容器中的组件放在一个列表中。列表的顺序将定义组件在容器内的正向堆栈顺序。如果将组件添加到容器中时未指定索引,则该索引将被添加到列表尾部(此后它位于堆栈顺序的底部)。
注:有关焦点子系统的详细信息,请参阅 The Java Tutorial 中 How to Use the Focus Subsystem 一节,要获得更多的信息,请参阅 Focus Specification。
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()
获取此容器的布局管理器。 |
|
|
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.lang.Object 继承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| 构造方法详细信息 |
|---|
public Container()
| 方法详细信息 |
|---|
public int getComponentCount()
getComponent(int)@Deprecated public int countComponents()
public Component getComponent(int n)
n - 要获取的组件的索引。
ArrayIndexOutOfBoundsException - 如果 nth 值不存在。public Component[] getComponents()
public Insets getInsets()
例如,Frame 对象有一个顶端 inset,它对应于窗体的标题栏的高度。
Insets,
LayoutManager@Deprecated public Insets insets()
getInsets() 取代。
public Component add(Component comp)
addImpl(java.awt.Component, java.lang.Object, int) 的便捷方法。
注:如果已经将某个组件添加到显示的容器中,则必须在此容器上调用 validate,以显示新的组件。如果添加多个组件,那么可以在添加所有组件之后,通过只调用一次 validate 来提高效率。
comp - 要添加的组件
NullPointerException - 如果 comp 为 nulladdImpl(java.awt.Component, java.lang.Object, int),
validate(),
JComponent.revalidate()
public Component add(String name,
Component comp)
addImpl(java.awt.Component, java.lang.Object, int) 的便捷方法。
从 JDK version 1.1 开始,此方法已过时。请使用 add(Component, Object) 方法代替。
NullPointerException - 如果 comp 为 nulladd(Component, Object)
public Component add(Component comp,
int index)
addImpl(java.awt.Component, java.lang.Object, int) 的便捷方法。
注:如果已经将某个组件添加到显示的容器中,则必须在此容器上调用 validate,以显示新的组件。如果添加多个组件,那么可以在添加所有组件之后,通过只调用一次 validate 来提高效率。
comp - 要添加的组件index - 插入组件的位置,-1 表示将组件追加到尾部
comp
NullPointerException - 如果 comp 为 null
IllegalArgumentException - 如果 index 无效(有关细节请参阅 addImpl(java.awt.Component, java.lang.Object, int))addImpl(java.awt.Component, java.lang.Object, int),
remove(int),
validate(),
JComponent.revalidate()
public void setComponentZOrder(Component comp,
int index)
如果组件是其他某个 container 的子组件,则在将它添加到此容器之前,从该容器中移除它。此方法与 java.awt.Container.add(Component, int) 之间的重要不同是,在将组件从其以前的容器中移除时,此方法不对该组件调用 removeNotify,除非有此必要,并且基础本机窗口系统允许这样做。因此,如果组件拥有键盘焦点,那么在移动到新的位置上时,它会维持该焦点。
要保证此属性只应用于轻量级的非 Container 组件。
注:并不是所有的平台都支持在不调用 removeNotify 的情况下,将重量级组件的 z 顺序从一个容器更改到另一个容器中。无法检测某个平台是否支持这一点,因此开发人员不应该作出任何假设。
comp - 要移动的组件index - 在容器的列表中插入组件的位置,其中 getComponentCount() 指追加到尾部
NullPointerException - 如果 comp 为 null
IllegalArgumentException - 如果 comp 是该容器的父容器之一
IllegalArgumentException - 如果在容器间移动的 index 不在 [0, getComponentCount()] 范围内,或者在容器内移动的 index 不在 [0, getComponentCount()-1] 范围内
IllegalArgumentException - 如果将一个容器添加给其自身
IllegalArgumentException - 如果将 Window 添加到容器中getComponentZOrder(java.awt.Component)public int getComponentZOrder(Component comp)
comp - 正查询的组件
null 或者不属于该容器,则返回 -1setComponentZOrder(java.awt.Component, int)
public void add(Component comp,
Object constraints)
addImpl(java.awt.Component, java.lang.Object, int) 的便捷方法。
注:如果已经将某个组件添加到显示的容器中,则必须在此容器上调用 validate,以显示新的组件。如果添加多个组件,那么可以在添加所有组件之后,通过只调用一次 validate 来提高效率。
comp - 要添加的组件constraints - 表示此组件的布局约束的对象
NullPointerException - 如果 comp 为 nulladdImpl(java.awt.Component, java.lang.Object, int),
validate(),
JComponent.revalidate(),
LayoutManager
public void add(Component comp,
Object constraints,
int index)
addImpl(java.awt.Component, java.lang.Object, int) 的便捷方法。
注:如果已经将某个组件添加到显示的容器中,则必须在此容器上调用 validate,以显示新的组件。如果添加多个组件,那么可以在添加所有组件之后,通过只调用一次 validate 来提高效率。
comp - 要添加的组件constraints - 表示此组件的布局约束的对象index - 容器列表中插入组件的位置;-1 表示将组件插入尾部
NullPointerException - 如果 comp 为 null
IllegalArgumentException - 如果 index 无效(有关细节请参阅 addImpl(java.awt.Component, java.lang.Object, int))addImpl(java.awt.Component, java.lang.Object, int),
validate(),
JComponent.revalidate(),
remove(int),
LayoutManager
protected void addImpl(Component comp,
Object constraints,
int index)
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)。
如果该组件不是此容器的祖先容器,并且有一个非 null 父组件,则在将该组件添加到此容器之前,从其当前父组件中移除它。
在其他所有添加方法引用此方法时,如果某个程序需要追踪每个添加到容器的请求,那么这就是要重写的方法。被重写的方法通常应该包括一个对该方法的超类版本的调用:
super.addImpl(comp, constraints, index)
comp - 要添加的组件constraints - 表示此组件的布局约束的对象容器列表中插入组件的位置;其中 - -1 表示将组件追加到尾部
IllegalArgumentException - 如果 index 无效;如果 comp 是此容器的子容器,则有效范围是 [-1, getComponentCount()-1];如果组件不是此容器的子容器,则有效范围是 [-1, getComponentCount()]
IllegalArgumentException - 如果 comp 是此容器的祖先容器
IllegalArgumentException - 如果向容器添加一个窗口
NullPointerException - 如果 comp 为 nulladd(Component),
add(Component, int),
add(Component, java.lang.Object),
LayoutManager,
LayoutManager2public void remove(int index)
index 指定的组件。此方法还通知布局管理器,通过 removeLayoutComponent 方法从此容器的布局中移除该组件。
注:如果已经从已显示的容器中移除一个组件,则必须在该容器上调用 validate() 来反映更改。如果移除多个组件,那么可以在移除所有组件之后,通过只调用一次 validate() 来提高效率。
index - 要移除的组件的索引
ArrayIndexOutOfBoundsException - 如果 index 不在范围 [0, getComponentCount()-1] 内add(java.awt.Component),
validate(),
getComponentCount()public void remove(Component comp)
removeLayoutComponent 方法从此容器的布局中移除该组件。
注:如果已经从已显示的容器中移除一个组件,则必须在该容器上调用 validate() 来反映更改。如果移除多个组件,那么可以在移除所有组件之后,通过只调用一次 validate() 来提高效率。
comp - 要移除的组件add(java.awt.Component),
validate(),
remove(int)public void removeAll()
removeLayoutComponent 方法从此容器的布局中移除这些组件。
add(java.awt.Component),
remove(int)public LayoutManager getLayout()
doLayout(),
setLayout(java.awt.LayoutManager)public void setLayout(LayoutManager mgr)
mgr - 指定的布局管理器doLayout(),
getLayout()public void doLayout()
validate 方法。
Component 中的 doLayoutLayoutManager.layoutContainer(java.awt.Container),
setLayout(java.awt.LayoutManager),
validate()@Deprecated public void layout()
doLayout() 取代。
Component 中的 layoutpublic void invalidate()
如果在此容器上安装的 LayoutManager 是一个 LayoutManager2 实例,则在该实例上调用 LayoutManager2.invalidateLayout(Container),并提供此 Container 作为参数。
Component 中的 invalidatevalidate(),
layout(),
LayoutManager,
LayoutManager2.invalidateLayout(Container)public void validate()
使用 validate 方法会使容器再次布置其子组件。已经显示容器后,在修改此容器的子组件的时候(在容器中添加或移除组件,或者更改与布局相关的信息),应该调用上述方法。
如果此 Container 无效,则此方法将调用 validateTree 方法,并将此 Container 标记为有效。否则不执行任何动作。
Component 中的 validateadd(java.awt.Component),
Component.invalidate(),
JComponent.revalidate(),
validateTree()protected void validateTree()
validate) 提供。
doLayout(),
validate()public void setFont(Font f)
Component 中的 setFontf - 将成为此容器的字体的字体。Component.getFont()public Dimension getPreferredSize()
Component.setPreferredSize(Dimension) 显式设置首选大小,并且此 Container 有一个 non-null LayoutManager,则使用 LayoutManager.preferredLayoutSize(Container) 来计算首选大小。
注:一些实现可能缓存从 LayoutManager 返回的值。每次调用此方法时,这些缓存实现不需要在 LayoutManager 上调用 preferredLayoutSize,而是只在 Container 变得无效之后查询 LayoutManager。
Component 中的 getPreferredSizeDimension 实例。getMinimumSize(),
getMaximumSize(),
getLayout(),
LayoutManager.preferredLayoutSize(Container),
Component.getPreferredSize()@Deprecated public Dimension preferredSize()
getPreferredSize() 取代。
Component 中的 preferredSizepublic Dimension getMinimumSize()
Component.setMinimumSize(Dimension) 显式设置最小大小,并且此 Container 有一个 non-null LayoutManager,则使用 LayoutManager.minimumLayoutSize(Container) 来计算最小大小。
注:一些实现可能缓存从 LayoutManager 返回的值。每次调用此方法时,这些缓存实现不需要在 LayoutManager 上调用 minimumLayoutSize,而是只在 Container 变得无效之后查询 LayoutManager。
Component 中的 getMinimumSizeDimension 实例。getPreferredSize(),
getMaximumSize(),
getLayout(),
LayoutManager.minimumLayoutSize(Container),
Component.getMinimumSize()@Deprecated public Dimension minimumSize()
getMinimumSize() 取代。
Component 中的 minimumSizepublic Dimension getMaximumSize()
Component.setMaximumSize(Dimension) 显式设置最大大小,并且在此 Container 上安装的 LayoutManager 是一个 LayoutManager2 实例,则使用 LayoutManager2.maximumLayoutSize(Container) 来计算最大大小。
注:一些实现可能缓存从 LayoutManager2 返回的值。每次调用此方法时,这些缓存实现不需要在 LayoutManager2 上调用 maximumLayoutSize,而是只在 Container 变得无效之后查询 LayoutManager2。
Component 中的 getMaximumSizeDimension 实例。getPreferredSize(),
getMinimumSize(),
getLayout(),
LayoutManager2.maximumLayoutSize(Container),
Component.getMaximumSize()public float getAlignmentX()
Component 中的 getAlignmentXpublic float getAlignmentY()
Component 中的 getAlignmentYpublic void paint(Graphics g)
Component 中的 paintg - 指定的 Graphics 窗口Component.update(Graphics)public void update(Graphics g)
Component 中的 updateg - 指定的 Graphics 窗口Component.update(Graphics)public void print(Graphics g)
Component 中的 printg - 指定的 Graphics 窗口Component.update(Graphics)public void paintComponents(Graphics g)
g - 图形上下文。Component.paint(java.awt.Graphics),
Component.paintAll(java.awt.Graphics)public void printComponents(Graphics g)
g - 图形上下文。Component.print(java.awt.Graphics),
Component.printAll(java.awt.Graphics)public void addContainerListener(ContainerListener l)
l - 容器侦听器removeContainerListener(java.awt.event.ContainerListener),
getContainerListeners()public void removeContainerListener(ContainerListener l)
l - 容器侦听器addContainerListener(java.awt.event.ContainerListener),
getContainerListeners()public ContainerListener[] getContainerListeners()
ContainerListener,如果没有当前已注册的容器侦听器,则返回一个空数组addContainerListener(java.awt.event.ContainerListener),
removeContainerListener(java.awt.event.ContainerListener)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 中的 getListenerslistenerType - 所请求侦听器的类型;该参数应该指定一个从 java.util.EventListener 继承的接口
FooListener 的所有对象的数组,如果没有添加这样的侦听器,则返回一个空数组
ClassCastException - 如果 listenerType 没有指定实现 java.util.EventListener 的类或接口getContainerListeners()protected void processEvent(AWTEvent e)
ContainerEvent,那么将调用 processContainerEvent 方法,否则将调用其超类的 processEvent 方法。
注意,如果事件参数为 null,则行为是不确定的,并且可能导致异常。
Component 中的 processEvente - 事件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)protected void processContainerEvent(ContainerEvent e)
addContainerListener 注册 ContainerListener 对象
enableEvents 启用容器事件
注意,如果事件参数为 null,则行为是不确定的,并且可能导致异常。
e - 容器事件Component.enableEvents(long)@Deprecated public void deliverEvent(Event e)
dispatchEvent(AWTEvent e) 取代
Component 中的 deliverEvent
public Component getComponentAt(int x,
int y)
Component 中的 getComponentAtx - x 坐标y - y 坐标
Component.contains(int, int)
@Deprecated
public Component locate(int x,
int y)
getComponentAt(int, int) 取代。
Component 中的 locatepublic Component getComponentAt(Point p)
Component 中的 getComponentAtp - 点。
null。Component.contains(int, int)
public Point getMousePosition(boolean allowChildren)
throws HeadlessException
Container 位于鼠标指针下,则返回鼠标指针在此 Container 的坐标中的位置,否则返回 null。此方法类似于 Component.getMousePosition(),不过它可能还要考虑 Container 的子组件。如果 allowChildren 为 false,则仅当鼠标指针直接位于 Container 上方,而不是位于被 Container 的子组件掩盖的那部分上方时,此方法才返回一个非 null 值。如果 allowChildren 为 true,且鼠标指针位于 Container 或其任意子代的上方时,此方法才返回一个非 null 值。
allowChildren - 如果将子组件也考虑进去,则此参数为 true
Component 的鼠标坐标,或者 null
HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 trueComponent.getMousePosition()
public Component findComponentAt(int x,
int y)
findComponentAt 方法不同于 getComponentAt 方法,getComponentAt 方法只搜索 Container 的直接子组件;如果包含的组件是一个 Container,则 findComponentAt 方法将搜索子容器,以找到嵌套的组件。
x - x 坐标y - y 坐标
Component.contains(int, int),
getComponentAt(int, int)public Component findComponentAt(Point p)
findComponentAt 方法不同于 getComponentAt 方法,getComponentAt 方法只搜索 Container 的直接子组件;如果包含的组件是一个 Container,则 findComponentAt 方法将搜索子容器,以找到嵌套的组件。
p - 点。
Component.contains(int, int),
getComponentAt(int, int)public void addNotify()
Component 中的 addNotifyComponent.isDisplayable(),
removeNotify()public void removeNotify()
Component 中的 removeNotifyComponent.isDisplayable(),
addNotify()public boolean isAncestorOf(Component c)
c - 组件
true;否则返回 false。protected String paramString()
Container 的状态的字符串。此方法仅在进行调试的时候使用,对于各个实现,所返回字符串的内容和格式可能有所不同。返回的字符串可能为空,但不可能为 null。
Component 中的 paramString
public void list(PrintStream out,
int indent)
使用 indent+1 的缩排来打印容器的直接子组件。这些子组件的子组件是在 indent+2 上打印的,依此类推。
Component 中的 listout - 打印流indent - 缩排的空格数Component.list(java.io.PrintStream, int)
public void list(PrintWriter out,
int indent)
使用 indent+1 的缩排来打印容器的直接子组件。这些子组件的子组件是在 indent+2 上打印的,依此类推。
Component 中的 listout - 打印编写器indent - 缩排的空格数Component.list(java.io.PrintWriter, int)
public void setFocusTraversalKeys(int id,
Set<? extends AWTKeyStroke> keystrokes)
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 | 向下移动一个焦点遍历循环 | 无 |
使用 AWTKeyStroke API,客户机代码可以指定在两个特定 KeyEvents(KEY_PRESSED 或 KEY_RELEASED)中的哪一个上进行焦点遍历操作。不管指定的是哪一个 KeyEvent,所有与焦点遍历键相关的 KeyEvent(包括相关 KEY_TYPED 事件)都将被使用,并且不将它们指派给任何 Container。在将事件映射到焦点遍历操作,或者将同一事件映射到多个默认焦点遍历操作时,指定 KEY_TYPED 事件是一个运行时错误。
如果为 Set 指定 null 值,则此 Container 将继承其父辈的 Set。如果此 Container 的所有祖先都为 Set 指定了 null 值,则使用当前 KeyboardFocusManager 的默认 Set。
Component 中的 setFocusTraversalKeysid - 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 的另一个焦点遍历操作getFocusTraversalKeys(int),
KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,
KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,
KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS,
KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYSpublic Set<AWTKeyStroke> getFocusTraversalKeys(int id)
setFocusTraversalKeys。)
如果没有为此 Container 明确定义了遍历键的 Set,则返回此 Container 的父 Set。如果没有为此 Container 的任何祖先明确定义 Set,则返回当前 KeyboardFocusManager 的默认 Set。
Component 中的 getFocusTraversalKeysid - KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS、KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 或 KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS 之一
IllegalArgumentException - 如果 id 不是 KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS、KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 或 KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS 之一setFocusTraversalKeys(int, java.util.Set extends java.awt.AWTKeyStroke>),
KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,
KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,
KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS,
KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYSpublic boolean areFocusTraversalKeysSet(int id)
false,则此 Container 从一个祖先或当前 KeyboardFocusManager 那里继承 Set。
Component 中的 areFocusTraversalKeysSetid - 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 之一public boolean isFocusCycleRoot(Container container)
true。
Component 中的 isFocusCycleRootcontainer - 要测试的 Container
true;否则返回 falseisFocusCycleRoot()public void transferFocusBackward()
Component 复制的描述
Component 中的 transferFocusBackwardComponent.requestFocus()public void setFocusTraversalPolicy(FocusTraversalPolicy policy)
如果此 Container 不是一个焦点循环根,要记得该策略,但直到此 Container 成为焦点循环根,此 Container 或其他任何 Container 才可以使用或继承此策略。
policy - 此 Container 的新的焦点遍历策略getFocusTraversalPolicy(),
setFocusCycleRoot(boolean),
isFocusCycleRoot(java.awt.Container)public FocusTraversalPolicy getFocusTraversalPolicy()
setFocusTraversalPolicy(java.awt.FocusTraversalPolicy),
setFocusCycleRoot(boolean),
isFocusCycleRoot(java.awt.Container)public boolean isFocusTraversalPolicySet()
false,则此 Container 将从一个祖先那里继承其焦点遍历策略。
true;否则返回 false。public void setFocusCycleRoot(boolean focusCycleRoot)
指定此 Container 子代的遍历顺序的替代方法是焦点遍历策略提供者。
focusCycleRoot - 指示此 Container 是否是某个焦点遍历循环的根isFocusCycleRoot(),
setFocusTraversalPolicy(java.awt.FocusTraversalPolicy),
getFocusTraversalPolicy(),
ContainerOrderFocusTraversalPolicy,
setFocusTraversalPolicyProvider(boolean)public boolean isFocusCycleRoot()
setFocusCycleRoot(boolean),
setFocusTraversalPolicy(java.awt.FocusTraversalPolicy),
getFocusTraversalPolicy(),
ContainerOrderFocusTraversalPolicypublic final void setFocusTraversalPolicyProvider(boolean provider)
true 的容器来获取焦点遍历策略,而不是获取最近的焦点循环根的祖先。
provider - 指示是否将用此容器提供焦点遍历策略setFocusTraversalPolicy(java.awt.FocusTraversalPolicy),
getFocusTraversalPolicy(),
isFocusTraversalPolicyProvider()public final boolean isFocusTraversalPolicyProvider()
true,那么在键盘焦点管理器搜索容器层次结构来查找焦点遍历策略,且在其他任何将此属性设置为 true 的容器之前遇到此容器或焦点循环根的时候,将使用其焦点遍历策略,而不是使用焦点循环根的策略。
true,否则返回 falsesetFocusTraversalPolicy(java.awt.FocusTraversalPolicy),
getFocusTraversalPolicy(),
setFocusCycleRoot(boolean),
setFocusTraversalPolicyProvider(boolean)public void transferFocusDownCycle()
Component.requestFocus(),
isFocusCycleRoot(java.awt.Container),
setFocusCycleRoot(boolean)public void applyComponentOrientation(ComponentOrientation o)
ComponentOrientation 属性。
Component 中的 applyComponentOrientationo - 此容器的新组件的方向性和其中包含组件的方向性。
NullPointerException - 如果 orientation 为 null。Component.setComponentOrientation(java.awt.ComponentOrientation),
Component.getComponentOrientation()public void addPropertyChangeListener(PropertyChangeListener listener)
如果侦听器为 null,则不会抛出异常,并且不执行任何动作。
Component 中的 addPropertyChangeListenerlistener - 要添加的 PropertyChangeListenerComponent.removePropertyChangeListener(java.beans.PropertyChangeListener),
addPropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)
public void addPropertyChangeListener(String propertyName,
PropertyChangeListener listener)
如果侦听器为 null,则不会抛出异常,并且不执行任何动作。
Component 中的 addPropertyChangeListenerpropertyName - 上面列出的属性名称之一listener - 要添加的 PropertyChangeListeneraddPropertyChangeListener(java.beans.PropertyChangeListener),
Component.removePropertyChangeListener(java.beans.PropertyChangeListener)
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。