|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object java.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
为 null
addImpl(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
为 null
add(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
为 null
addImpl(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
为 null
add(Component)
,
add(Component, int)
,
add(Component, java.lang.Object)
,
LayoutManager
,
LayoutManager2
public 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
中的 doLayout
LayoutManager.layoutContainer(java.awt.Container)
,
setLayout(java.awt.LayoutManager)
,
validate()
@Deprecated public void layout()
doLayout()
取代。
Component
中的 layout
public void invalidate()
如果在此容器上安装的 LayoutManager
是一个 LayoutManager2
实例,则在该实例上调用 LayoutManager2.invalidateLayout(Container)
,并提供此 Container
作为参数。
Component
中的 invalidate
validate()
,
layout()
,
LayoutManager
,
LayoutManager2.invalidateLayout(Container)
public void validate()
使用 validate
方法会使容器再次布置其子组件。已经显示容器后,在修改此容器的子组件的时候(在容器中添加或移除组件,或者更改与布局相关的信息),应该调用上述方法。
如果此 Container
无效,则此方法将调用 validateTree
方法,并将此 Container
标记为有效。否则不执行任何动作。
Component
中的 validate
add(java.awt.Component)
,
Component.invalidate()
,
JComponent.revalidate()
,
validateTree()
protected void validateTree()
validate
) 提供。
doLayout()
,
validate()
public void setFont(Font f)
Component
中的 setFont
f
- 将成为此容器的字体的字体。Component.getFont()
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()
@Deprecated public Dimension preferredSize()
getPreferredSize()
取代。
Component
中的 preferredSize
public Dimension getMinimumSize()
Component.setMinimumSize(Dimension)
显式设置最小大小,并且此 Container
有一个 non-null
LayoutManager
,则使用 LayoutManager.minimumLayoutSize(Container)
来计算最小大小。
注:一些实现可能缓存从 LayoutManager
返回的值。每次调用此方法时,这些缓存实现不需要在 LayoutManager
上调用 minimumLayoutSize
,而是只在 Container
变得无效之后查询 LayoutManager
。
Component
中的 getMinimumSize
Dimension
实例。getPreferredSize()
,
getMaximumSize()
,
getLayout()
,
LayoutManager.minimumLayoutSize(Container)
,
Component.getMinimumSize()
@Deprecated public Dimension minimumSize()
getMinimumSize()
取代。
Component
中的 minimumSize
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()
public float getAlignmentX()
Component
中的 getAlignmentX
public float getAlignmentY()
Component
中的 getAlignmentY
public void paint(Graphics g)
Component
中的 paint
g
- 指定的 Graphics 窗口Component.update(Graphics)
public void update(Graphics g)
Component
中的 update
g
- 指定的 Graphics 窗口Component.update(Graphics)
public void print(Graphics g)
Component
中的 print
g
- 指定的 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
中的 getListeners
listenerType
- 所请求侦听器的类型;该参数应该指定一个从 java.util.EventListener
继承的接口
FooListener
的所有对象的数组,如果没有添加这样的侦听器,则返回一个空数组
ClassCastException
- 如果 listenerType
没有指定实现 java.util.EventListener
的类或接口getContainerListeners()
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)
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
中的 getComponentAt
x
- x 坐标y
- y 坐标
Component.contains(int, int)
@Deprecated public Component locate(int x, int y)
getComponentAt(int, int)
取代。
Component
中的 locate
public Component getComponentAt(Point p)
Component
中的 getComponentAt
p
- 点。
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
中的 addNotify
Component.isDisplayable()
,
removeNotify()
public void removeNotify()
Component
中的 removeNotify
Component.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
中的 list
out
- 打印流indent
- 缩排的空格数Component.list(java.io.PrintStream, int)
public void list(PrintWriter out, int indent)
使用 indent+1
的缩排来打印容器的直接子组件。这些子组件的子组件是在 indent+2
上打印的,依此类推。
Component
中的 list
out
- 打印编写器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
中的 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 的另一个焦点遍历操作getFocusTraversalKeys(int)
,
KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS
,
KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS
,
KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS
,
KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS
public Set<AWTKeyStroke> getFocusTraversalKeys(int id)
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 之一
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_KEYS
public boolean areFocusTraversalKeysSet(int id)
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 之一
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
中的 isFocusCycleRoot
container
- 要测试的 Container
true
;否则返回 false
isFocusCycleRoot()
public void transferFocusBackward()
Component
复制的描述
Component
中的 transferFocusBackward
Component.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()
,
ContainerOrderFocusTraversalPolicy
public final void setFocusTraversalPolicyProvider(boolean provider)
true
的容器来获取焦点遍历策略,而不是获取最近的焦点循环根的祖先。
provider
- 指示是否将用此容器提供焦点遍历策略setFocusTraversalPolicy(java.awt.FocusTraversalPolicy)
,
getFocusTraversalPolicy()
,
isFocusTraversalPolicyProvider()
public final boolean isFocusTraversalPolicyProvider()
true
,那么在键盘焦点管理器搜索容器层次结构来查找焦点遍历策略,且在其他任何将此属性设置为 true 的容器之前遇到此容器或焦点循环根的时候,将使用其焦点遍历策略,而不是使用焦点循环根的策略。
true
,否则返回 false
setFocusTraversalPolicy(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
中的 applyComponentOrientation
o
- 此容器的新组件的方向性和其中包含组件的方向性。
NullPointerException
- 如果 orientation
为 null。Component.setComponentOrientation(java.awt.ComponentOrientation)
,
Component.getComponentOrientation()
public void addPropertyChangeListener(PropertyChangeListener listener)
如果侦听器为 null,则不会抛出异常,并且不执行任何动作。
Component
中的 addPropertyChangeListener
listener
- 要添加的 PropertyChangeListenerComponent.removePropertyChangeListener(java.beans.PropertyChangeListener)
,
addPropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)
public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
如果侦听器为 null,则不会抛出异常,并且不执行任何动作。
Component
中的 addPropertyChangeListener
propertyName
- 上面列出的属性名称之一listener
- 要添加的 PropertyChangeListeneraddPropertyChangeListener(java.beans.PropertyChangeListener)
,
Component.removePropertyChangeListener(java.beans.PropertyChangeListener)
|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。