将指定组件添加到此容器的指定索引所在的位置上。此方法还通知布局管理器,通过 addlayoutcomponent
方法,使用指定的约束对象将组件添加到此容器的布局中。
这些约束是由正使用的特定布局管理器定义的。例如,borderlayout
类定义了五个约束:borderlayout.north
、borderlayout.south
、borderlayout.east
、borderlayout.west
和 borderlayout.center
。
gridbaglayout
类需要一个 gridbagconstraints
对象。如果传递正确的约束对象类型时失败,则会导致 illegalargumentexception
。
如果当前布局管理器实现了 layoutmanager2
,则在其上调用 layoutmanager2.addlayoutcomponent(component,object)
。如果当前布局管理器没有实现 layoutmanager2
,并且约束是一个 string
,则在其上调用 layoutmanager.addlayoutcomponent(string,component)
。
如果该组件不是此容器的祖先容器,并且有一个非 null 父组件,则在将该组件添加到此容器之前,从其当前父组件中移除它。
在其他所有添加方法引用此方法时,如果某个程序需要追踪每个添加到容器的请求,那么这就是要重写的方法。被重写的方法通常应该包括一个对该方法的超类版本的调用:
super.addimpl(comp, constraints, index)
- 参数:
comp
- 要添加的组件constraints
- 表示此组件的布局约束的对象容器列表中插入组件的位置;其中
- -1
表示将组件追加到尾部
- 抛出:
illegalargumentexception
- 如果 index
无效;如果 comp
是此容器的子容器,则有效范围是 [-1, getcomponentcount()-1]
;如果组件不是此容器的子容器,则有效范围是 [-1, getcomponentcount()]
illegalargumentexception
- 如果 comp
是此容器的祖先容器
illegalargumentexception
- 如果向容器添加一个窗口
nullpointerexception
- 如果 comp
为 null
- 从以下版本开始:
- jdk1.1
- 另请参见:
add(component)
,
add(component, int)
,
add(component, java.lang.object)
,
layoutmanager
,
layoutmanager2