- 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
通用抽象窗口工具包(AWT)容器对象是可以包含其他AWT组件的组件。添加到容器的组件将在列表中进行跟踪。 列表的顺序将定义组件在容器内的前后堆叠顺序。 如果在将容器添加到容器时未指定索引,则会将其添加到列表的末尾(因此也会添加到堆叠顺序的底部)。
注意 :有关焦点子系统的详细信息,请参阅How to Use the Focus Subsystem ,在Java教程一节,并Focus Specification获取更多信息。
- 从以下版本开始:
- 1.0
- 另请参见:
-
add(java.awt.Component, int)
,getComponent(int)
,LayoutManager
, Serialized Form
-
-
嵌套类汇总
嵌套类 变量和类型 类 描述 protected class
Container.AccessibleAWTContainer
Container的内部类,用于为可访问性提供默认支持。
-
字段汇总
-
声明的属性在类 java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
Fields declared in interface 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连接到本机屏幕资源,可以显示此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开始,由getComponentCount()取代。void
deliverEvent(Event e)
已过时。截至JDK 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的给定遍历操作的焦点遍历键集。FocusTraversalPolicy
getFocusTraversalPolicy()
返回将管理此Container的子项的键盘遍历的焦点遍历策略,如果此Container不是焦点循环根,则返回null。Insets
getInsets()
确定此容器的insets,它指示容器边框的大小。LayoutManager
getLayout()
获取此容器的布局管理器。<T extends EventListener>
T[]getListeners(类<T> listenerType)
返回当前注册的所有对象的数组FooListener
在这个SContainer
。Dimension
getMaximumSize()
返回此容器的最大大小。Dimension
getMinimumSize()
返回此容器的最小大小。Point
getMousePosition(boolean allowChildren)
如果Container
位于鼠标指针下,则返回此Container
坐标空间中鼠标指针的位置,否则返回null
。Dimension
getPreferredSize()
返回此容器的首选大小。Insets
insets()
已过时。截至JDK 1.1版,由getInsets()
取代。void
invalidate()
使容器无效。boolean
isAncestorOf(Component c)
检查组件是否包含在此容器的组件层次结构中。boolean
isFocusCycleRoot()
返回此Container是否是焦点遍历循环的根。boolean
isFocusCycleRoot(Container container)
返回指定的Container是否是此Container焦点遍历循环的焦点循环根。boolean
isFocusTraversalPolicyProvider()
返回此容器是否提供焦点遍历策略。boolean
isFocusTraversalPolicySet()
返回是否已为此Container显式设置焦点遍历策略。boolean
isValidateRoot()
指示此容器是否为 验证根 。void
layout()
已过时。截至JDK 1.1版,由doLayout()
取代。void
list(PrintStream out, int indent)
将此容器的列表打印到指定的输出流。void
list(PrintWriter out, int indent)
从指定的缩进开始将列表打印到指定的打印编写器。Component
locate(int x, int y)
已过时。截至JDK 1.1版,由getComponentAt(int, int)
取代。Dimension
minimumSize()
已过时。截至JDK 1.1版,由getMinimumSize()
取代。void
paint(Graphics g)
涂抹容器。void
paintComponents(Graphics g)
绘制此容器中的每个组件。protected String
paramString()
返回表示此Container
的状态的字符串。Dimension
preferredSize()
已过时。截至JDK 1.1版,由getPreferredSize()
取代。void
print(Graphics g)
打印容器。void
printComponents(Graphics g)
打印此容器中的每个组件。protected void
processContainerEvent(ContainerEvent e)
处理在此容器上发生的容器事件,方法是将它们分派给任何已注册的ContainerListener对象。protected void
processEvent(AWTEvent e)
处理此容器上的事件。void
remove(int index)
从此容器中删除由index
指定的组件。void
remove(Component comp)
从此容器中删除指定的组件。void
removeAll()
从此容器中删除所有组件。void
removeContainerListener(ContainerListener l)
删除指定的容器侦听器,以便它不再从此容器接收容器事件。void
removeNotify()
通过删除与其本机屏幕资源的连接,使此Container不可显示。void
setComponentZOrder(Component comp, int index)
将指定的组件移动到容器中指定的z-order索引。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
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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, revalidate, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setMixingCutoutShape, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
方法详细信息
-
getComponentCount
public int getComponentCount()
获取此面板中的组件数。注意:此方法应在AWT树锁下调用。
- 结果
- 此面板中的组件数量。
- 从以下版本开始:
- 1.1
- 另请参见:
-
getComponent(int)
,Component.getTreeLock()
-
countComponents
@Deprecated public int countComponents()
Deprecated.As of JDK version 1.1, replaced by getComponentCount().返回此容器中的组件数。- 结果
- 此容器中的组件数
-
getComponent
public Component getComponent(int n)
获取此容器中的第n个组件。注意:此方法应在AWT树锁下调用。
- 参数
-
n
- 要获取的组件的索引。 - 结果
- 这个容器中的 第 n 个组件。
- 异常
-
ArrayIndexOutOfBoundsException
- 如果第n 个值不存在。 - 另请参见:
-
Component.getTreeLock()
-
getComponents
public Component[] getComponents()
获取此容器中的所有组件。注意:此方法应在AWT树锁下调用。
- 结果
- 此容器中所有组件的数组。
- 另请参见:
-
Component.getTreeLock()
-
getInsets
public Insets getInsets()
确定此容器的insets,它指示容器边框的大小。例如,
Frame
对象的顶部插入对应于框架标题栏的高度。- 结果
- 这个容器的插图。
- 从以下版本开始:
- 1.1
- 另请参见:
-
Insets
,LayoutManager
-
insets
@Deprecated public Insets insets()
Deprecated.As of JDK version 1.1, replaced bygetInsets()
.返回此容器的insets。- 结果
- 这个容器的插图
-
add
public Component add(Component comp)
将指定的组件追加到此容器的末尾。 这是addImpl(java.awt.Component, java.lang.Object, int)
的便捷方法。此方法更改与布局相关的信息,因此使组件层次结构无效。 如果已显示容器,则必须在此后验证层次结构以显示添加的组件。
- 参数
-
comp
- 要添加的组件 - 结果
- 组件参数
- 异常
-
NullPointerException
- 如果comp
是null
- 另请参见:
-
addImpl(java.awt.Component, java.lang.Object, int)
,invalidate()
,validate()
,JComponent.revalidate()
-
add
public Component add(String name, Component comp)
将指定的组件添加到此容器中。 这是addImpl(java.awt.Component, java.lang.Object, int)
的便捷方法。从1.1开始,此方法已过时。 请改用方法
add(Component, Object)
。此方法更改与布局相关的信息,因此使组件层次结构无效。 如果已显示容器,则必须在此后验证层次结构以显示添加的组件。
- 参数
-
name
- 要添加的组件的名称 -
comp
- 要添加的组件 - 结果
- 添加的组件
- 异常
-
NullPointerException
- 如果comp
是null
- 另请参见:
-
add(Component, Object)
,invalidate()
-
add
public Component add(Component comp, int index)
将指定的组件添加到给定位置的此容器中。 这是addImpl(java.awt.Component, java.lang.Object, int)
的便捷方法。此方法更改与布局相关的信息,因此使组件层次结构无效。 如果已显示容器,则必须在此后验证层次结构以显示添加的组件。
- 参数
-
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)
,invalidate()
,validate()
,JComponent.revalidate()
-
setComponentZOrder
public void setComponentZOrder(Component comp, int index)
将指定的组件移动到容器中指定的z-order索引。 z顺序决定了组件的绘制顺序; 首先是具有最高z次序涂料的组件,最后是具有最低z次序涂料的组件。 在组件重叠的情况下,具有较低z次序的组件在具有较高z次序的组件上绘制。如果组件是某个其他容器的子组件,则在将其添加到此容器之前将其从该容器中删除。 此方法与
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
添加到容器中 - 从以下版本开始:
- 1.5
- 另请参见:
-
getComponentZOrder(java.awt.Component)
,invalidate()
-
getComponentZOrder
public int getComponentZOrder(Component comp)
返回容器内组件的z顺序索引。 组件在z顺序层次结构中越高,其索引越低。 具有最低z顺序索引的组件最后绘制,高于所有其他子组件。- 参数
-
comp
- 正在查询的组件 - 结果
-
组件的z次序索引;
否则返回-1如果组件是
null
或不属于容器 - 从以下版本开始:
- 1.5
- 另请参见:
-
setComponentZOrder(java.awt.Component, int)
-
add
public void add(Component comp, Object constraints)
将指定的组件添加到此容器的末尾。 还通知布局管理器使用指定的约束对象将组件添加到此容器的布局中。 这是addImpl(java.awt.Component, java.lang.Object, int)
的便捷方法。此方法更改与布局相关的信息,因此使组件层次结构无效。 如果已显示容器,则必须在此后验证层次结构以显示添加的组件。
- 参数
-
comp
- 要添加的组件 -
constraints
- 表示此组件的布局约束的对象 - 异常
-
NullPointerException
- 如果comp
是null
- 从以下版本开始:
- 1.1
- 另请参见:
-
addImpl(java.awt.Component, java.lang.Object, int)
,invalidate()
,validate()
,JComponent.revalidate()
,LayoutManager
-
add
public void add(Component comp, Object constraints, int index)
使用指定索引处的指定约束将指定组件添加到此容器。 还通知布局管理器使用指定的约束对象将组件添加到此容器的布局中。 这是addImpl(java.awt.Component, java.lang.Object, int)
的便捷方法。此方法更改与布局相关的信息,因此使组件层次结构无效。 如果已显示容器,则必须在此后验证层次结构以显示添加的组件。
- 参数
-
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)
,invalidate()
,validate()
,JComponent.revalidate()
,remove(int)
,LayoutManager
-
addImpl
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
- 表示此组件的布局约束的对象 -
index
- 容器列表中插入组件的位置,其中-1
表示追加到末尾 - 异常
-
IllegalArgumentException
- 如果index
无效; 如果comp
是此容器的子级,则有效范围为[-1, getComponentCount()-1]
; 如果component不是此容器的子级,则有效范围为[-1, getComponentCount()]
-
IllegalArgumentException
- 如果comp
是此容器的祖先 -
IllegalArgumentException
- 如果向容器添加窗口 -
NullPointerException
- 如果comp
是null
- 从以下版本开始:
- 1.1
- 另请参见:
-
add(Component)
,add(Component, int)
,add(Component, java.lang.Object)
,invalidate()
,LayoutManager
,LayoutManager2
-
remove
public void remove(int index)
从此容器中删除由index
指定的组件。 此方法还通知布局管理器通过removeLayoutComponent
方法从此容器的布局中删除组件。此方法更改与布局相关的信息,因此使组件层次结构无效。 如果已显示容器,则必须在此后验证层次结构以反映更改。
- 参数
-
index
- 要删除的组件的索引 - 异常
-
ArrayIndexOutOfBoundsException
- 如果index
不在范围[0, getComponentCount()-1]
- 从以下版本开始:
- 1.1
- 另请参见:
-
add(java.awt.Component)
,invalidate()
,validate()
,getComponentCount()
-
remove
public void remove(Component comp)
从此容器中删除指定的组件。 此方法还通知布局管理器通过removeLayoutComponent
方法从此容器的布局中删除组件。此方法更改与布局相关的信息,因此使组件层次结构无效。 如果已显示容器,则必须在此后验证层次结构以反映更改。
- 参数
-
comp
- 要删除的组件 - 异常
-
NullPointerException
- 如果comp
是null
- 另请参见:
-
add(java.awt.Component)
,invalidate()
,validate()
,remove(int)
-
removeAll
public void removeAll()
从此容器中删除所有组件。 此方法还通知布局管理器通过removeLayoutComponent
方法从此容器的布局中删除组件。此方法更改与布局相关的信息,因此使组件层次结构无效。 如果已显示容器,则必须在此后验证层次结构以反映更改。
- 另请参见:
-
add(java.awt.Component)
,remove(int)
,invalidate()
-
getLayout
public LayoutManager getLayout()
获取此容器的布局管理器。- 结果
- 此容器的当前布局管理器
- 另请参见:
-
doLayout()
,setLayout(java.awt.LayoutManager)
-
setLayout
public void setLayout(LayoutManager mgr)
设置此容器的布局管理器。此方法更改与布局相关的信息,因此使组件层次结构无效。
- 参数
-
mgr
- 指定的布局管理器 - 另请参见:
-
doLayout()
,getLayout()
,invalidate()
-
doLayout
public void doLayout()
使此容器布置其组件。 大多数程序不应该直接调用此方法,而应调用validate
方法。- 重写:
-
doLayout
在课程Component
- 从以下版本开始:
- 1.1
- 另请参见:
-
LayoutManager.layoutContainer(java.awt.Container)
,setLayout(java.awt.LayoutManager)
,validate()
-
layout
@Deprecated public void layout()
Deprecated.As of JDK version 1.1, replaced bydoLayout()
.
-
isValidateRoot
public boolean isValidateRoot()
指示此容器是否为验证根 。与布局相关的更改(例如验证根后代的边界)不会影响验证根父级的布局。 这种特性使
invalidate()
方法在方法遇到验证根时停止使组件层次结构无效。 但是,为了保持向后兼容性,仅当java.awt.smartInvalidate
系统属性值设置为true
时,java.awt.smartInvalidate
启用此新优化行为。如果组件层次结构包含验证根并且启用了新的优化
invalidate()
行为,则必须在先前无效的组件的验证根上调用validate()
方法,以便validate()
恢复层次结构的有效性。 否则,应使用顶级容器(例如Frame
对象)上的validate()
方法来恢复组件层次结构的有效性。Window
类和Applet
类是AWT中的验证根。 Swing引入了更多验证根。- 结果
- 此容器是否为验证根
- 从以下版本开始:
- 1.7
- 另请参见:
-
invalidate()
,Component.invalidate()
,JComponent.isValidateRoot()
,JComponent.revalidate()
-
invalidate
public void invalidate()
使容器无效。如果此容器上安装的
LayoutManager
是LayoutManager2
接口的实例,则会在其上调用LayoutManager2.invalidateLayout(Container)
方法,并将此Container
作为参数。之后,此方法将此容器标记为无效,并使其祖先无效。 有关更多详细信息,请参见
Component.invalidate()
方法。- 重写:
-
invalidate
在课堂上Component
- 另请参见:
-
validate()
,layout()
,LayoutManager2
-
validate
public void validate()
验证此容器及其所有子组件。验证容器意味着布置其子组件。 与布局相关的更改(例如,设置组件的边界或将组件添加到容器)会自动使容器无效。 请注意,容器的祖先也可能无效(有关详细信息,请参阅
Component.invalidate()
)。因此,要恢复层次结构的有效性,应在层次结构的最顶层无效容器上调用validate()
方法。验证容器可能是非常耗时的操作。 出于性能原因,开发人员可以推迟层次结构的验证,直到一组与布局相关的操作完成,例如在将所有子项添加到容器之后。
如果此
Container
无效,则此方法将调用validateTree
方法并将此Container
标记为有效。 否则,不执行任何操作。
-
validateTree
protected void validateTree()
递归地下降容器树并重新计算标记为需要的任何子树的布局(标记为无效的子树)。 应该通过调用此方法的方法提供同步:validate
。- 另请参见:
-
doLayout()
,validate()
-
setFont
public void setFont(Font f)
设置此容器的字体。此方法更改与布局相关的信息,因此使组件层次结构无效。
- 重写:
-
setFont
在课程Component
- 参数
-
f
- 成为此容器字体的字体。 - 从以下版本开始:
- 1.0
- 另请参见:
-
Component.getFont()
,invalidate()
-
getPreferredSize
public Dimension getPreferredSize()
返回此容器的首选大小。 如果未通过Component.setPreferredSize(Dimension)
明确设置首选大小且此Container
具有non-null
LayoutManager
,则使用LayoutManager.preferredLayoutSize(Container)
计算首选大小。注意:某些实现可能会缓存从
LayoutManager
返回的值。 该缓存不需要调用实现preferredLayoutSize
对LayoutManager
每次调用此方法,而时间LayoutManager
后才会进行查询Container
变得无效。- 重写:
-
getPreferredSize
在课程Component
- 结果
-
Dimension
的实例,表示此容器的首选大小。 - 另请参见:
-
getMinimumSize()
,getMaximumSize()
,getLayout()
,LayoutManager.preferredLayoutSize(Container)
,Component.getPreferredSize()
-
preferredSize
@Deprecated public Dimension preferredSize()
Deprecated.As of JDK version 1.1, replaced bygetPreferredSize()
.返回组件的首选大小。- 重写:
-
preferredSize
在类Component
- 结果
- 组件的首选大小
-
getMinimumSize
public Dimension getMinimumSize()
返回此容器的最小大小。 如果未通过Component.setMinimumSize(Dimension)
明确设置最小尺寸且此Container
具有non-null
LayoutManager
,则使用LayoutManager.minimumLayoutSize(Container)
计算最小尺寸。注意:某些实现可能会缓存从
LayoutManager
返回的值。 该缓存不需要调用实现minimumLayoutSize
对LayoutManager
每次调用此方法,而时间LayoutManager
后才会进行查询Container
变得无效。- 重写:
-
getMinimumSize
在类Component
- 结果
-
Dimension
的实例,表示此容器的最小大小。 - 从以下版本开始:
- 1.1
- 另请参见:
-
getPreferredSize()
,getMaximumSize()
,getLayout()
,LayoutManager.minimumLayoutSize(Container)
,Component.getMinimumSize()
-
minimumSize
@Deprecated public Dimension minimumSize()
Deprecated.As of JDK version 1.1, replaced bygetMinimumSize()
.返回此组件的最小大小。- 重写:
-
minimumSize
类Component
- 结果
- 此组件的最小大小
-
getMaximumSize
public Dimension getMaximumSize()
返回此容器的最大大小。 如果最大尺寸没有被明确设置Component.setMaximumSize(Dimension)
和LayoutManager
安装在此Container
就是一个实例LayoutManager2
,然后LayoutManager2.maximumLayoutSize(Container)
用于计算的最大尺寸。注意:某些实现可能会缓存从
LayoutManager2
返回的值。 该缓存不需要调用实现maximumLayoutSize
对LayoutManager2
每次调用此方法,而时间LayoutManager2
后才会进行查询Container
变得无效。- 重写:
-
getMaximumSize
在课程Component
- 结果
-
Dimension
的实例,表示此容器的最大大小。 - 另请参见:
-
getPreferredSize()
,getMinimumSize()
,getLayout()
,LayoutManager2.maximumLayoutSize(Container)
,Component.getMaximumSize()
-
getAlignmentX
public float getAlignmentX()
返回沿x轴的对齐方式。 这指定了组件相对于其他组件的对齐方式。 该值应为0到1之间的数字,其中0表示沿原点对齐,1表示距离原点最远,0.5表示居中等。- 重写:
-
getAlignmentX
在课程Component
- 结果
- 该组件的水平对齐方式
-
getAlignmentY
public float getAlignmentY()
返回沿y轴的对齐方式。 这指定了组件相对于其他组件的对齐方式。 该值应为0到1之间的数字,其中0表示沿原点对齐,1表示距离原点最远,0.5表示居中等。- 重写:
-
getAlignmentY
在课堂上Component
- 结果
- 该组件的垂直对齐方式
-
paint
public void paint(Graphics g)
涂抹容器。 这会将绘制转发给任何属于此容器子级的轻量级组件。 如果重新实现此方法,则应调用super.paint(g)以便正确呈现轻量级组件。 如果子组件被g中的当前剪切设置完全剪切,则paint()将不会转发给该子组件。- 重写:
-
paint
在课程Component
- 参数
-
g
- 指定的图形窗口 - 另请参见:
-
Component.update(Graphics)
-
update
public void update(Graphics g)
更新容器。 这会将更新转发给作为此容器子级的任何轻量级组件。 如果重新实现此方法,则应调用super.update(g)以便正确呈现轻量级组件。 如果子组件被g中的当前剪切设置完全剪切,则update()将不会转发给该子组件。- 重写:
-
update
类Component
- 参数
-
g
- 指定的图形窗口 - 另请参见:
-
Component.update(Graphics)
-
print
public void print(Graphics g)
打印容器。 这会将打印转发给作为此容器子项的任何轻量级组件。 如果重新实现此方法,则应调用super.print(g)以便正确呈现轻量级组件。 如果子组件被g中的当前剪切设置完全剪切,则print()将不会转发给该子组件。- 重写:
-
print
在课程Component
- 参数
-
g
- 指定的图形窗口 - 另请参见:
-
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
- 容器侦听器 - 另请参见:
-
removeContainerListener(java.awt.event.ContainerListener)
,getContainerListeners()
-
removeContainerListener
public void removeContainerListener(ContainerListener l)
- 参数
-
l
- 容器侦听器 - 另请参见:
-
addContainerListener(java.awt.event.ContainerListener)
,getContainerListeners()
-
getContainerListeners
public ContainerListener[] getContainerListeners()
返回在此容器上注册的所有容器侦听器的数组。- 结果
-
所有这个容器的
ContainerListener
s,如果当前没有注册容器侦听器,则为空数组 - 从以下版本开始:
- 1.4
- 另请参见:
-
addContainerListener(java.awt.event.ContainerListener)
,removeContainerListener(java.awt.event.ContainerListener)
-
getListeners
public <T extends EventListener> T[] getListeners(类<T> listenerType)
返回当前注册的所有对象的数组FooListener
在这个SContainer
。FooListener
s使用addFooListener
方法注册。您可以使用类文字指定
listenerType
参数,例如FooListener.class
。 例如,您可以使用以下代码在Container c
查询其容器侦听器:ContainerListener[] cls = (ContainerListener[])(c.getListeners(ContainerListener.class));
如果不存在此类侦听器,则此方法返回空数组。- 重写:
-
getListeners
在课程Component
- 参数类型
-
T
- 侦听器的类型 - 参数
-
listenerType
- 请求的侦听器类型; 此参数应指定从java.util.EventListener
下降的接口 - 结果
-
此容器上注册为
FooListener
的所有对象的数组,如果未添加此类侦听器,则为空数组 - 异常
-
ClassCastException
- 如果listenerType
未指定实现java.util.EventListener
的类或接口 -
NullPointerException
- 如果listenerType
是null
- 从以下版本开始:
- 1.3
- 另请参见:
-
getContainerListeners()
-
processEvent
protected void processEvent(AWTEvent e)
处理此容器上的事件。 如果事件是ContainerEvent
,则调用processContainerEvent
方法,否则调用其超类processEvent
。请注意,如果事件参数为
null
则行为未指定,可能会导致异常。- 重写:
-
processEvent
在课程Component
- 参数
-
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对象。 注意:除非为此组件启用容器事件,否则不会调用此方法; 发生以下任一情况时会发生这种情况:- ContainerListener对象通过
addContainerListener
注册 - 容器事件通过
enableEvents
启用
请注意,如果事件参数为
null
则行为未指定,可能会导致异常。- 参数
-
e
- 容器事件 - 另请参见:
-
Component.enableEvents(long)
- ContainerListener对象通过
-
deliverEvent
@Deprecated public void deliverEvent(Event e)
Deprecated.As of JDK version 1.1, replaced bydispatchEvent(AWTEvent e)
- 重写:
-
deliverEvent
类Component
- 参数
-
e
- 要交付的活动
-
getComponentAt
public Component getComponentAt(int x, int y)
找到包含x,y位置的组件。 在组件中存在重叠的情况下,返回最顶层的子组件。 这是通过找到最接近索引0的组件来确定的,该组件声称通过Component.contains()声明包含给定点,除了具有本机对等的组件优先于那些没有组件的组件(即轻量级组件)。- 重写:
-
getComponentAt
类Component
- 参数
-
x
- x坐标 -
y
- y坐标 - 结果
- 如果组件不包含位置,则返回null。 如果请求的点上没有子组件,并且该点在容器的边界内,则返回容器本身; 否则最重要的孩子将被退回。
- 从以下版本开始:
- 1.1
- 另请参见:
-
Component.contains(int, int)
-
locate
@Deprecated public Component locate(int x, int y)
Deprecated.As of JDK version 1.1, replaced bygetComponentAt(int, int)
.复制自类:Component
描述返回占用指定位置的组件(此组件或直接子组件,如果前两个都不占用该位置,则返回null)。
-
getComponentAt
public Component getComponentAt(Point p)
获取包含指定点的组件。- 重写:
-
getComponentAt
类Component
- 参数
-
p
- 重点。 - 结果
-
返回包含该点的组件,如果组件不包含该点,则返回
null
。 - 从以下版本开始:
- 1.1
- 另请参见:
-
Component.contains(int, int)
-
getMousePosition
public Point getMousePosition(boolean allowChildren) throws HeadlessException
如果Container
位于鼠标指针下,则返回此Container
坐标空间中鼠标指针的位置,否则返回null
。 此方法类似于Component.getMousePosition()
,但可以考虑Container
的子项。 如果allowChildren
是false
,则此方法仅在鼠标指针直接位于Container
上方时才返回非空值,而不是在子Container
遮挡的部分上方。 如果allowChildren
是true
,则如果鼠标指针位于Container
或其任何后代true
,则此方法返回非null值。- 参数
-
allowChildren
- 如果应考虑儿童,allowChildren
真 - 结果
-
鼠标坐标相对于此
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。 如果请求的点上没有子组件,并且该点在容器的边界内,则返回容器本身。
- 异常
-
NullPointerException
- 如果p
是null
- 从以下版本开始:
- 1.2
- 另请参见:
-
Component.contains(int, int)
,getComponentAt(int, int)
-
addNotify
public void addNotify()
通过将此Container连接到本机屏幕资源,可以显示此Container。 使容器可显示将使其所有子容器可显示。 此方法由工具包在内部调用,不应由程序直接调用。- 重写:
-
addNotify
类Component
- 另请参见:
-
Component.isDisplayable()
,removeNotify()
-
removeNotify
public void removeNotify()
通过删除与其本机屏幕资源的连接,使此Container不可显示。 使容器不可显示将导致其所有儿童无法显示。 该方法由工具包在内部调用,不应由程序直接调用。- 重写:
-
removeNotify
在课堂上Component
- 另请参见:
-
Component.isDisplayable()
,addNotify()
-
isAncestorOf
public boolean isAncestorOf(Component c)
检查组件是否包含在此容器的组件层次结构中。- 参数
-
c
- 组件 - 结果
-
true
如果是祖先; 否则为false
。 - 从以下版本开始:
- 1.1
-
paramString
protected String paramString()
返回表示此Container
的状态的字符串。 此方法仅用于调试目的,返回字符串的内容和格式可能因实现而异。 返回的字符串可能为空,但可能不是null
。- 重写:
-
paramString
在课程Component
- 结果
- 此容器的参数字符串
-
list
public void list(PrintStream out, int indent)
将此容器的列表打印到指定的输出流。 列表从指定的缩进开始。容器的直接子项印有缩进号
indent+1
。 这些孩子的孩子印在indent+2
,依此类推。- 重写:
-
list
在课程Component
- 参数
-
out
- 打印流 -
indent
- 要缩进的空格数 - 异常
-
NullPointerException
- 如果out
是null
- 从以下版本开始:
- 1.0
- 另请参见:
-
Component.list(java.io.PrintStream, int)
-
list
public void list(PrintWriter out, int indent)
从指定的缩进开始将列表打印到指定的打印编写器。容器的直接子项打印出的缩进为
indent+1
。 这些孩子的孩子印在indent+2
,依此类推。- 重写:
-
list
在课程Component
- 参数
-
out
- 印刷作家 -
indent
- 要缩进的空格数 - 异常
-
NullPointerException
- 如果out
是null
- 从以下版本开始:
- 1.1
- 另请参见:
-
Component.list(java.io.PrintWriter, int)
-
setFocusTraversalKeys
public void setFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes)
为此Container的给定遍历操作设置焦点遍历键。Container的焦点遍历键的默认值取决于实现。 Sun建议特定本机平台的所有实现都使用相同的默认值。 下面列出了Windows和Unix的建议。 这些建议用于Sun AWT实现。
Recommended default values for a Container's focus traversal keys Identifier Meaning Default KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS Normal forward keyboard traversal TAB on KEY_PRESSED, CTRL-TAB on KEY_PRESSED KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS Normal reverse keyboard traversal SHIFT-TAB on KEY_PRESSED, CTRL-SHIFT-TAB on KEY_PRESSED KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS Go up one focus traversal cycle none KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS Go down one focus traversal cycle none使用AWTKeyStroke API,客户端代码可以指定焦点遍历操作将在两个特定KeyEvent,KEY_PRESSED或KEY_RELEASED中的哪一个上进行。 但是,无论指定哪个KeyEvent,与焦点遍历键相关的所有KeyEvent(包括关联的KEY_TYPED事件)都将被使用,并且不会被分派到任何Container。 将KEY_TYPED事件指定为映射到焦点遍历操作或将同一事件映射到多个默认焦点遍历操作是一个运行时错误。
如果为Set指定了null值,则此Container将从其父级继承Set。 如果此Container的所有祖先都为Set指定了null,则使用当前KeyboardFocusManager的默认Set。
这种方法可能抛出
ClassCastException
如有Object
在keystrokes
不是AWTKeyStroke
。- 重写:
-
setFocusTraversalKeys
在类Component
- 参数
-
id
- KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS或KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS之一 -
keystrokes
- 指定操作的AWTKeyStroke集 - 异常
-
IllegalArgumentException
- 如果id不是KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS或KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS之一,或者键击包含null,或者任何击键表示KEY_TYPED事件,或者任何击键已经映射到另一个焦点遍历此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的给定遍历操作的焦点遍历键集。 (有关每个密钥的完整说明,请参阅setFocusTraversalKeys
)如果尚未为此Container显式定义一组遍历键,则返回此Container的父级Set。 如果没有为此Container的任何祖先显式定义Set,则返回当前KeyboardFocusManager的默认Set。
- 重写:
-
getFocusTraversalKeys
在课程Component
- 参数
-
id
- KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS或KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS之一 - 结果
- 指定操作的AWTKeyStrokes集。 该集将是不可修改的,可能是空的。 永远不会返回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<? extends java.awt.AWTKeyStroke>)
,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。- 重写:
-
areFocusTraversalKeysSet
,类Component
- 参数
-
id
- KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS或KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS之一 - 结果
-
true
如果已为此Component明确定义了给定焦点遍历操作的焦点遍历键集; 否则为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最近的焦点循环根祖先为根。 在这种情况下,此方法将为这两个容器返回true
。- 重写:
-
isFocusCycleRoot
在课程Component
- 参数
-
container
- 要测试的容器 - 结果
-
true
如果指定的Container是此Container的焦点true
根; 否则为false
- 从以下版本开始:
- 1.4
- 另请参见:
-
isFocusCycleRoot()
-
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将从祖先继承其焦点遍历策略。- 结果
-
true
如果已为此Container明确设置了焦点遍历策略; 否则为false
。 - 从以下版本开始:
- 1.4
-
setFocusCycleRoot
public void setFocusCycleRoot(boolean focusCycleRoot)
设置此Container是否是焦点遍历循环的根。 一旦焦点进入遍历循环,通常它不能通过焦点遍历离开它,除非按下其中一个向上或向下循环键。 正常遍历仅限于此Container,并且所有这些Container的后代都不是次要焦点循环根的后代。 但请注意,FocusTraversalPolicy可能会限制这些限制。 例如,ContainerOrderFocusTraversalPolicy支持隐式下行循环遍历。指定此Container子项的遍历顺序的另一种方法是使此Container成为focus traversal policy provider 。
- 参数
-
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
属性及其中包含的所有组件。此方法更改与布局相关的信息,因此使组件层次结构无效。
- 重写:
-
applyComponentOrientation
在课程Component
- 参数
-
o
- 此容器的新组件方向及其中包含的组件。 - 异常
-
NullPointerException
- 如果orientation
为空。 - 从以下版本开始:
- 1.4
- 另请参见:
-
Component.setComponentOrientation(java.awt.ComponentOrientation)
,Component.getComponentOrientation()
,invalidate()
-
addPropertyChangeListener
public void addPropertyChangeListener(PropertyChangeListener listener)
将PropertyChangeListener添加到侦听器列表。 侦听器已注册此类的所有绑定属性,包括以下内容:- 这个Container的字体(“font”)
- 这个Container的背景颜色(“背景”)
- 这个Container的前景色(“前景”)
- 这个容器的可聚焦性(“可聚焦”)
- 此Container的焦点遍历键启用状态(“focusTraversalKeysEnabled”)
- 这个容器的FORWARD_TRAVERSAL_KEYS(“forwardFocusTraversalKeys”)的集合
- 这个Container的一套BACKWARD_TRAVERSAL_KEYS(“backwardFocusTraversalKeys”)
- 这个容器的UP_CYCLE_TRAVERSAL_KEYS(“upCycleFocusTraversalKeys”)的集合
- 这个Container的DOWN_CYCLE_TRAVERSAL_KEYS(“downCycleFocusTraversalKeys”)
- 这个Container的焦点遍历政策(“focusTraversalPolicy”)
- 这个Container的焦点循环根状态(“focusCycleRoot”)
如果listener为null,则不会抛出异常并且不执行任何操作。
- 重写:
-
addPropertyChangeListener
类Component
- 参数
-
listener
- 要添加的PropertyChangeListener - 另请参见:
-
Component.removePropertyChangeListener(java.beans.PropertyChangeListener)
,addPropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)
-
addPropertyChangeListener
public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
将PropertyChangeListener添加到特定属性的侦听器列表中。 指定的属性可以是用户定义的,也可以是以下默认值之一:- 这个Container的字体(“font”)
- 这个Container的背景颜色(“背景”)
- 这个Container的前景色(“前景”)
- 这个容器的可聚焦性(“可聚焦”)
- 此Container的焦点遍历键启用状态(“focusTraversalKeysEnabled”)
- 这个容器的FORWARD_TRAVERSAL_KEYS(“forwardFocusTraversalKeys”)的集合
- 这个Container的一套BACKWARD_TRAVERSAL_KEYS(“backwardFocusTraversalKeys”)
- 这个容器的UP_CYCLE_TRAVERSAL_KEYS(“upCycleFocusTraversalKeys”)的集合
- 这个Container的DOWN_CYCLE_TRAVERSAL_KEYS(“downCycleFocusTraversalKeys”)
- 这个Container的焦点遍历政策(“focusTraversalPolicy”)
- 这个Container的焦点循环根状态(“focusCycleRoot”)
- 此Container的焦点遍历策略提供者状态(“focusTraversalPolicyProvider”)
- 此Container的焦点遍历策略提供者状态(“focusTraversalPolicyProvider”)
如果listener为null,则不会抛出异常并且不执行任何操作。
- 重写:
-
addPropertyChangeListener
类Component
- 参数
-
propertyName
- 上面列出的其中一个属性 -
listener
- 要添加的PropertyChangeListener - 另请参见:
-
addPropertyChangeListener(java.beans.PropertyChangeListener)
,Component.removePropertyChangeListener(java.beans.PropertyChangeListener)
-
-