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.FlipBufferStrategyaccessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTABORT, 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, transferFocusUpCyclepublic 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)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.