|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
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.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)
使用指定约束 (Constraints),将指定组件添加到此容器的指定索引所在的位置上。 |
|
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 子组件的键盘遍历。 |
|
Insets |
getInsets()
确定此容器的 insets,它指示容器边界 (border) 的大小。 |
|
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,它对应于 Frame(窗体)的标题栏的高度。
Insets
,
LayoutManager
@Deprecated public Insets insets()
getInsets()
取代。
public Component add(Component comp)
addImpl(java.awt.Component, java.lang.Object, int)
的便捷方法。
注:如果已经将某个组件添加到显示的容器中,则必须在此容器上调用 validate
,以显示新的组件。如果添加多个组件,那么可以在添加所有组件之后,通过只调用一次 validate
来提高效率。
comp
- 要添加的组件
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)
方法代替。
add(Component, Object)
public Component add(Component comp, int index)
addImpl(java.awt.Component, java.lang.Object, int)
的便捷方法。
注:如果已经将某个组件添加到显示的容器中,则必须在此容器上调用 validate
,以显示新的组件。如果添加多个组件,那么可以在添加所有组件之后,通过只调用一次 validate
来提高效率。
comp
- 要添加的组件index
- 插入组件的位置,-1
表示将组件追加到尾部
comp
addImpl(java.awt.Component, java.lang.Object, int)
,
remove(int)
,
validate()
,
JComponent.revalidate()
public final 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()]
范围内,或者在容器内移动的索引不在 [0, getComponentCount()-1]
范围内
IllegalArgumentException
- 如果将一个容器添加给其自身
IllegalArgumentException
- 如果将 Window
添加到容器中getComponentZOrder(java.awt.Component)
public final 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
- 表示此组件的布局约束的对象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
表示将组件插入尾部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
。
如果布局管理器既实现了 LayoutManager
接口又实现了 LayoutManager2
接口,则调用 LayoutManager2
方法。
注意,如果组件已经存在于此容器或其子容器中,那么在将组件添加到此容器之前,要从该容器中移除它。
在其他所有添加方法引用此方法时,如果某个程序需要追踪每个添加到容器的请求,那么这就是要重写的方法。被重写的方法通常应该包括一个对该方法的父类版本的调用:
super.addImpl(comp, constraints, index)
comp
- 要添加的组件constraints
- 表示此组件的布局限制的对象容器列表中插入组件的位置;其中
- -1
表示将组件追加到尾部
IllegalArgumentException
- 如果 index
无效
IllegalArgumentException
- 如果将容器的父容器添加到该容器
IllegalArgumentException
- 如果已经多次将 comp
添加到 Container
IllegalArgumentException
- 如果将窗口添加到容器中add(Component)
,
add(Component, int)
,
add(Component, java.lang.Object)
,
LayoutManager
,
LayoutManager2
public void remove(int index)
index
指定的组件。此方法还通知布局管理器,通过 removeLayoutComponent
方法从此容器的布局中移除该组件。
index
- 要移除组件的索引add(java.awt.Component)
public void remove(Component comp)
removeLayoutComponent
方法从此容器的布局中移除该组件。
comp
- 要移除的组件add(java.awt.Component)
,
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()
Component
中的 invalidate
validate()
,
layout()
,
LayoutManager
public void validate()
使用 validate
方法会使容器再次布置其子组件。已经布置容器后,在修改此容器的子组件的时候(在容器中添加或移除组件,或者更改与布局相关的信息),应该调用上述方法。
Component
中的 validate
add(java.awt.Component)
,
Component.invalidate()
,
JComponent.revalidate()
protected void validateTree()
validate
) 提供。
public void setFont(Font f)
Component
中的 setFont
f
- 将成为此容器的字体的字体。Component.getFont()
public Dimension getPreferredSize()
Component
中的 getPreferredSize
Dimension
的一个实例,它表示了此容器首选大小。getMinimumSize()
,
getLayout()
,
LayoutManager.preferredLayoutSize(Container)
,
Component.getPreferredSize()
@Deprecated public Dimension preferredSize()
getPreferredSize()
取代。
Component
中的 preferredSize
public Dimension getMinimumSize()
Component
中的 getMinimumSize
Dimension
的一个实例,它表示了此容器最小大小。getPreferredSize()
,
getLayout()
,
LayoutManager.minimumLayoutSize(Container)
,
Component.getMinimumSize()
@Deprecated public Dimension minimumSize()
getMinimumSize()
取代。
Component
中的 minimumSize
public Dimension getMaximumSize()
Component
中的 getMaximumSize
getPreferredSize()
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
的容器来获取焦点遍历策略,而不是获取最近的焦点循环根的祖先。
provide
- 指示是否将用此容器提供焦点遍历策略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 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。