public class Container extends Component
添加到容器的组件将在列表中进行跟踪。 列表的顺序将在容器内定义组件的前后堆叠顺序。 如果在向容器添加组件时未指定索引,则将其添加到列表的末尾(因此将添加到堆栈顺序的底部)。
注意 :有关焦点子系统的详细信息,请参阅How to Use the Focus Subsystem ,在Java教程一节,以及Focus Specification以获取更多信息。
add(java.awt.Component, int)
, getComponent(int)
, LayoutManager
, Serialized Form
Modifier and Type | Class and Description |
---|---|
protected class |
Container.AccessibleAWTContainer
Container的内部类用于为辅助功能提供默认支持。
|
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Constructor and Description |
---|
Container()
构造一个新的容器。
|
Modifier and Type | Method and Description |
---|---|
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()
通过将此容器连接到本机屏幕资源来使此容器显示。
|
void |
addPropertyChangeListener(PropertyChangeListener listener)
将PropertyChangeListener添加到侦听器列表。
|
void |
addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
将PropertyChangeListener添加到特定属性的侦听器列表中。
|
void |
applyComponentOrientation(ComponentOrientation o)
设置此
ComponentOrientation 属性及其中包含的所有组件。
|
boolean |
areFocusTraversalKeysSet(int id)
返回是否为此容器显式定义了给定焦点遍历操作的聚焦遍历键集。
|
int |
countComponents()
已弃用
从JDK 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-order索引。
|
ContainerListener[] |
getContainerListeners()
返回在此容器上注册的所有容器侦听器的数组。
|
Set<AWTKeyStroke> |
getFocusTraversalKeys(int id)
返回此Container的给定遍历操作的聚焦遍历键集。
|
FocusTraversalPolicy |
getFocusTraversalPolicy()
返回将管理此Container的子项的键盘遍历的焦点遍历策略,如果此Container不是焦点循环根,则返回null。
|
Insets |
getInsets()
确定此容器的插入,这表示容器边框的大小。
|
LayoutManager |
getLayout()
获取此容器的布局管理器。
|
<T extends EventListener> |
getListeners(类<T> listenerType)
返回当前注册为
FooListener 的所有对象的数组,在此
Container 。
|
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()
返回此容器是否是焦点遍历循环的根。
|
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(Component comp)
从此容器中删除指定的组件。
|
void |
remove(int index)
去除组件,通过指定
index ,从这个容器。
|
void |
removeAll()
从此容器中删除所有组件。
|
void |
removeContainerListener(ContainerListener l)
删除指定的容器侦听器,使其不再从此容器接收容器事件。
|
void |
removeNotify()
通过删除其与其本机屏幕资源的连接,使此容器不可显示。
|
void |
setComponentZOrder(Component comp, int index)
将指定的组件移动到容器中指定的z顺序索引。
|
void |
setFocusCycleRoot(boolean focusCycleRoot)
设置此容器是否是焦点遍历循环的根。
|
void |
setFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes)
设置此容器的给定遍历操作的焦点遍历键。
|
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()
递归地下降容器树,并重新计算标记为需要的任何子树(标记为无效的)的布局。
|
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, revalidate, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
public Container()
public int getComponentCount()
注意:此方法应在AWT树锁下调用。
getComponent(int)
,
Component.getTreeLock()
@Deprecated public int countComponents()
public Component getComponent(int n)
注意:此方法应在AWT树锁下调用。
n
- 要获取的组件的索引。
ArrayIndexOutOfBoundsException
- 如果第n
个值不存在。
Component.getTreeLock()
public Component[] getComponents()
注意:此方法应在AWT树锁下调用。
Component.getTreeLock()
public Insets getInsets()
例如, Frame
对象具有对应于框架标题栏的高度的顶部插入。
Insets
, LayoutManager
@Deprecated public Insets insets()
getInsets()
取代。
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()
public Component add(String name, Component comp)
addImpl(java.awt.Component, java.lang.Object, int)
。
这种方法从1.1开始就已经过时了。 请改用方法add(Component, Object)
。
该方法更改布局相关信息,因此使组件层次结构无效。 如果容器已经被显示,则此后必须验证层次结构,以显示添加的组件。
NullPointerException
- 如果
comp
是
null
add(Component, Object)
,
invalidate()
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()
public void setComponentZOrder(Component comp, int index)
如果组件是某个其他容器的子对象,则在添加到此容器之前将其从该容器中删除。 此方法与java.awt.Container.add(Component, int)之间的java.awt.Container.add(Component, int)
在于,该方法不会在removeNotify
上调用removeNotify
,同时将其从其先前的容器中删除,除非有必要,并且在底层本机窗口系统允许的情况下。 这样,如果组件具有键盘焦点,则在移动到新位置时会保持焦点。
此属性保证仅适用于轻型非Container
组件。
该方法更改布局相关信息,因此使组件层次结构无效。
注意 :并非所有平台都支持将重量级组件的z级从一个容器更改为另一个容器,而无需调用removeNotify
。 无法检测平台是否支持此功能,因此开发人员不应作出任何假设。
comp
- 要移动的组件
index
- 容器列表中插入组件的位置,其中
getComponentCount()
附加到最后
NullPointerException
- 如果
comp
是
null
IllegalArgumentException
- 如果
comp
是容器的父母之一
IllegalArgumentException
- 如果
index
不在范围
[0, getComponentCount()]
之间移动容器之间,或不在范围
[0, getComponentCount()-1]
在
[0, getComponentCount()-1]
内移动
IllegalArgumentException
- 如果向其自身添加容器
IllegalArgumentException
- 如果向
Window
添加Window
getComponentZOrder(java.awt.Component)
,
invalidate()
public int getComponentZOrder(Component comp)
comp
- 被查询的组件
null
或不属于容器
setComponentZOrder(java.awt.Component, int)
public void add(Component comp, Object constraints)
addImpl(java.awt.Component, java.lang.Object, int)
。
该方法更改布局相关信息,因此使组件层次结构无效。 如果容器已经被显示,则此后必须验证层次结构,以显示添加的组件。
comp
- 要添加的组件
constraints
- 表示此组件的布局约束的对象
NullPointerException
- 如果
comp
是
null
addImpl(java.awt.Component, java.lang.Object, int)
, invalidate()
, validate()
, JComponent.revalidate()
, LayoutManager
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
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)
就被调用了。
如果组件不是此容器的祖先,并且具有非空父项,则在将其添加到此容器之前,它将从其当前父进程中删除。
如果程序需要跟踪每个添加到容器的请求,那么这种方法将会覆盖所有其他添加方法。 一个重写方法通常应该包括调用超类的方法版本:
super.addImpl(comp, constraints, index)
该方法更改布局相关信息,因此使组件层次结构无效。 如果容器已经被显示,则此后必须验证层次结构,以显示添加的组件。
comp
- 要添加的组件
constraints
- 表示该组件的布局约束的对象
index
- 容器列表中插入组件的位置,其中
-1
表示附加到最后
IllegalArgumentException
- 如果index
无效;
如果comp
是该容器的小孩,则有效范围为[-1, getComponentCount()-1]
;
如果组件不是此容器的子级,则有效范围为[-1, getComponentCount()]
IllegalArgumentException
- 如果
comp
是此容器的祖先
IllegalArgumentException
- 如果向
IllegalArgumentException
添加窗口
NullPointerException
- 如果
comp
是
null
add(Component)
, add(Component, int)
, add(Component, java.lang.Object)
, invalidate()
, LayoutManager
, LayoutManager2
public void remove(int index)
index
,从这个容器。
此方法还会通过布局管理器通过removeLayoutComponent
方法从该容器的布局中removeLayoutComponent
。
该方法更改布局相关信息,因此使组件层次结构无效。 如果已经显示了容器,则此后必须验证层次结构以反映更改。
index
- 要删除的组件的索引
ArrayIndexOutOfBoundsException
- 如果
index
不在范围
[0, getComponentCount()-1]
add(java.awt.Component)
,
invalidate()
,
validate()
,
getComponentCount()
public void remove(Component comp)
removeLayoutComponent
方法从该容器的布局中removeLayoutComponent
。
该方法更改布局相关信息,因此使组件层次结构无效。 如果已经显示了容器,则此后必须验证层次结构以反映更改。
comp
- 要删除的组件
NullPointerException
- 如果
comp
为
null
add(java.awt.Component)
,
invalidate()
,
validate()
,
remove(int)
public void removeAll()
removeLayoutComponent
方法从该容器的布局中removeLayoutComponent
。
该方法更改布局相关信息,因此使组件层次结构无效。 如果已经显示了容器,则此后必须验证层次结构以反映更改。
add(java.awt.Component)
,
remove(int)
,
invalidate()
public LayoutManager getLayout()
public void setLayout(LayoutManager mgr)
该方法更改布局相关信息,因此使组件层次结构无效。
mgr
- 指定的布局管理器
doLayout()
,
getLayout()
,
invalidate()
public void doLayout()
validate
方法。
doLayout
在类别
Component
LayoutManager.layoutContainer(java.awt.Container)
,
setLayout(java.awt.LayoutManager)
,
validate()
@Deprecated public void layout()
doLayout()
。
public boolean isValidateRoot()
布局相关的更改(例如验证根后代的边界)不会影响验证根父的布局。 当方法遇到有效根时,这种特性使invalidate()
方法能够停止使组件层次结构无效。 但是,为了保持向后兼容性,只有当java.awt.smartInvalidate
系统属性值设置为true
时, java.awt.smartInvalidate
启用此新的优化行为。
如果组件层次结构包含有效的根,并且启用了新的优化的invalidate()
行为,则必须在先前无效的组件的有效根上调用validate()
方法,以便稍后恢复层次结构的有效性。 否则,应使用顶级容器(如Frame
对象)调用validate()
方法来恢复组件层次结构的有效性。
Window
类和Applet
类是AWT中的有效根。 Swing引入更多有效的根。
invalidate()
,
Component.invalidate()
,
JComponent.isValidateRoot()
,
JComponent.revalidate()
public void invalidate()
如果这个LayoutManager
上安装的LayoutManager是一个LayoutManager2
接口的实例,那么LayoutManager2.invalidateLayout(Container)
方法被调用,它提供这个Container
作为参数。
之后,此方法标记此容器无效,并使其祖先无效。 有关详细信息,请参阅Component.invalidate()
方法。
invalidate
在类别
Component
validate()
, layout()
, LayoutManager2
public void validate()
验证容器意味着布置其子组件。 与布局相关的更改,例如设置组件的边界,或者向容器添加组件,会自动使容器无效。 请注意,容器的祖先也可能无效(详见Component.invalidate()
)。因此,要恢复层次结构的有效性,应在validate()
结构的最上层无效容器上调用validate()
方法。
验证容器可能是相当耗时的操作。 出于性能原因,开发人员可能推迟层次结构的验证,直到一组布局相关的操作完成,例如在将所有子项添加到容器之后。
如果这个Container
无效,此方法调用validateTree
方法,并标记为Container
为有效。 否则,不执行任何操作。
validate
在类别
Component
add(java.awt.Component)
,
invalidate()
,
isValidateRoot()
,
JComponent.revalidate()
,
validateTree()
protected void validateTree()
validate
: validate
。
doLayout()
,
validate()
public void setFont(Font f)
该方法更改布局相关信息,因此使组件层次结构无效。
setFont
在
Component
f
- 成为此容器字体的字体。
Component.getFont()
,
invalidate()
public Dimension getPreferredSize()
Component.setPreferredSize(Dimension)
和这个Container
具有non-null
LayoutManager
,则LayoutManager.preferredLayoutSize(Container)
被用来计算最佳尺寸。
注意:一些实现可以缓存从LayoutManager
返回的值。 该缓存不需要调用实现preferredLayoutSize
在LayoutManager
每次调用此方法,而时间LayoutManager
后才会进行查询Container
变得无效。
getPreferredSize
在类别
Component
Dimension
此容器的首选大小的实例Dimension。
getMinimumSize()
,
getMaximumSize()
,
getLayout()
,
LayoutManager.preferredLayoutSize(Container)
,
Component.getPreferredSize()
@Deprecated public Dimension preferredSize()
getPreferredSize()
取代。
preferredSize
在类别
Component
public Dimension getMinimumSize()
Component.setMinimumSize(Dimension)
这Container
有non-null
LayoutManager
,然后LayoutManager.minimumLayoutSize(Container)
用于计算的最小尺寸。
注意:某些实现可以缓存从LayoutManager
返回的值。 该缓存不需要调用实现minimumLayoutSize
在LayoutManager
每次调用此方法,而时间LayoutManager
后才会进行查询Container
变得无效。
getMinimumSize
在类别
Component
Dimension
此容器的最小大小的实例Dimension。
getPreferredSize()
,
getMaximumSize()
,
getLayout()
,
LayoutManager.minimumLayoutSize(Container)
,
Component.getMinimumSize()
@Deprecated public Dimension minimumSize()
getMinimumSize()
取代。
minimumSize
在类别
Component
public Dimension getMaximumSize()
Component.setMaximumSize(Dimension)
和LayoutManager
安装在此Container
是的一个实例LayoutManager2
,然后LayoutManager2.maximumLayoutSize(Container)
用于计算的最大尺寸。
注意:一些实现可以缓存从LayoutManager2
返回的值。 该缓存不需要调用实现maximumLayoutSize
在LayoutManager2
每次调用此方法,而时间LayoutManager2
后才会进行查询Container
变得无效。
getMaximumSize
在类别
Component
Dimension
此容器的最大大小的实例Dimension。
getPreferredSize()
,
getMinimumSize()
,
getLayout()
,
LayoutManager2.maximumLayoutSize(Container)
,
Component.getMaximumSize()
public float getAlignmentX()
getAlignmentX
在类别
Component
public float getAlignmentY()
getAlignmentY
在类别
Component
public void paint(Graphics g)
paint
在类别
Component
g
- 指定的图形窗口
Component.update(Graphics)
public void update(Graphics g)
update
在类别
Component
g
- 指定的图形窗口
Component.update(Graphics)
public void print(Graphics g)
print
在类别
Component
g
- 指定的图形窗口
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
s或一个空数组,如果没有容器侦听器当前注册
addContainerListener(java.awt.event.ContainerListener)
,
removeContainerListener(java.awt.event.ContainerListener)
public <T extends EventListener> T[] getListeners(类<T> listenerType)
FooListener
的所有对象的数组,在此Container
。
FooListener
使用addFooListener
。
您可以使用类文字指定listenerType
参数,如FooListener.class
。 例如,您可以使用以下代码查询Container
c
其容器侦听器:
ContainerListener[] cls = (ContainerListener[])(c.getListeners(ContainerListener.class));
如果没有这样的侦听器存在,这个方法返回一个空数组。
getListeners
在类别
Component
listenerType
- 所请求的听众的类型;
此参数应指定从java.util.EventListener
下降的java.util.EventListener
FooListener
的所有对象的数组,如果没有添加此类侦听器,则为空数组
ClassCastException
- 如果
listenerType
没有指定实现java.util.EventListener的类或
java.util.EventListener
NullPointerException
- 如果
listenerType
是
null
getContainerListeners()
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)
protected void processContainerEvent(ContainerEvent e)
addContainerListener
enableEvents
启用 请注意,如果事件参数为null
则行为未指定,并可能导致异常。
e
- 容器事件
Component.enableEvents(long)
@Deprecated public void deliverEvent(Event e)
dispatchEvent(AWTEvent e)
deliverEvent
在类别
Component
public Component getComponentAt(int x, int y)
getComponentAt
在类别
Component
x
-
x坐标
y
-
y坐标
Component.contains(int, int)
@Deprecated public Component locate(int x, int y)
getComponentAt(int, int)
。
public Component getComponentAt(Point p)
getComponentAt
在类别
Component
p
- 点。
null
如果组件不包含该点,则返回null。
Component.contains(int, int)
public Point getMousePosition(boolean allowChildren) throws HeadlessException
Container
在鼠标指针下方,则返回鼠标指针位于此Container
的坐标空间中,否则返回null
。
这种方法类似于Component.getMousePosition()
,除了它可以考虑Container
的孩子。
如果allowChildren
是false
,该方法将返回只有当鼠标指针位于上述一个非空值Container
直接,不高于由儿童遮蔽的部分。
如果allowChildren
是true
,如果鼠标指针高于Container
或其任何true
,则此方法返回非空值。
allowChildren
- 如果孩子应该被考虑,则为真
Component
鼠标坐标,或null
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
Component.getMousePosition()
public Component findComponentAt(int x, int y)
getComponentAt方法与getComponentAt不同,因为getComponentAt只搜索Container的直接子对象; 如果包含的组件是一个Container,那么findComponentAt将搜索该子节点以查找嵌套组件。
x
-
x坐标
y
-
y坐标
Component.contains(int, int)
,
getComponentAt(int, int)
public Component findComponentAt(Point p)
getComponentAt方法与getComponentAt不同,因为getComponentAt只搜索Container的直接子对象; 如果包含的组件是一个Container,那么findComponentAt将搜索该子节点以查找嵌套组件。
p
- 点。
NullPointerException
- 如果
p
是
null
Component.contains(int, int)
,
getComponentAt(int, int)
public void addNotify()
addNotify
在类别
Component
Component.isDisplayable()
,
removeNotify()
public void removeNotify()
removeNotify
在类别
Component
Component.isDisplayable()
,
addNotify()
public boolean isAncestorOf(Component c)
c
- 组件
true
如果是祖先;
false
否则。
protected String paramString()
Container
状态的字符串。
该方法仅用于调试目的,并且返回的字符串的内容和格式可能因实现而异。
返回的字符串可能为空,但可能不是null
。
paramString
在
Component
public void list(PrintStream out, int indent)
容器的直接儿童印有indent+1的indent+1
。 这些孩子的孩子们打印在indent+2
等等。
list
在类别
Component
out
- 打印流
indent
- 缩进的空格数
NullPointerException
- 如果
out
是
null
Component.list(java.io.PrintStream, int)
public void list(PrintWriter out, int indent)
容器的直接儿童印有indent+1的indent+1
。 这些孩子的孩子们打印在indent+2
等等。
list
在类别
Component
out
- 打印作家
indent
- 要缩进的空格数
NullPointerException
- 如果
out
是
null
Component.list(java.io.PrintWriter, int)
public void setFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes)
容器的焦点遍历键的默认值是依赖于实现的。 Sun建议特定本地平台的所有实现使用相同的默认值。 Windows和Unix的建议如下。 这些建议用于Sun AWT实现。
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。 如果此容器的所有祖先对于Set指定了空值,则使用当前的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.UP_CYCLE_TRAVERSAL_KEYS或KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS中的一个,或者如果键击包含null,或者如果任何键击代表KEY_TYPED事件,或者如果任何按键已映射到另一个焦点遍历此容器的操作
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显式定义一组遍历键,则返回此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
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。
areFocusTraversalKeysSet
在
Component
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
这两个容器。
isFocusCycleRoot
在类别
Component
container
- 要测试的容器
true
如果指定的Container是此Container的焦点循环根;
false
否则
isFocusCycleRoot()
public void setFocusTraversalPolicy(FocusTraversalPolicy policy)
如果此容器不是焦点循环根,则策略将被记住,但不会由此或任何其他容器使用或继承,直到此容器成为焦点循环根。
policy
- 此容器的新焦点遍历策略
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
如果已经为此Container显式设置了焦点遍历策略;
false
否则。
public void setFocusCycleRoot(boolean focusCycleRoot)
指定此Container的子进程的遍历顺序的另一种方法是使此Container为focus traversal policy provider 。
focusCycleRoot
- 表示此容器是否是焦点遍历循环的根
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
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
属性及其中包含的所有组件。
该方法更改布局相关信息,因此使组件层次结构无效。
applyComponentOrientation
在类别
Component
o
- 此容器及其中包含的组件的新组件方向。
NullPointerException
- 如果
orientation
为空。
Component.setComponentOrientation(java.awt.ComponentOrientation)
,
Component.getComponentOrientation()
,
invalidate()
public void addPropertyChangeListener(PropertyChangeListener listener)
如果侦听器为空,则不会抛出异常,也不会执行任何操作。
addPropertyChangeListener
在类别
Component
listener
- 要添加的PropertyChangeListener
Component.removePropertyChangeListener(java.beans.PropertyChangeListener)
,
addPropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)
public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
如果侦听器为空,则不会抛出异常,也不会执行任何操作。
addPropertyChangeListener
在类别
Component
propertyName
- 上面列出的属性名称之一
listener
- 要添加的PropertyChangeListener
addPropertyChangeListener(java.beans.PropertyChangeListener)
,
Component.removePropertyChangeListener(java.beans.PropertyChangeListener)