分页: 1 / 1
有人知道怎么用这个方法吗?
发表于 : 2007-11-22 20:27
由 mmxcq
如题,大家知道怎么用这个Container的add(Component comp, int index)
这个方法怎么用吗
小弟不太清楚
大家能说说吗
这里先谢了
发表于 : 2007-11-23 13:44
由 zxkane
看文档
发表于 : 2007-11-24 16:16
由 qzjackie
Adds the specified component to this container at the given position.
发表于 : 2007-11-24 16:17
由 qzjackie
查一下有一大堆,可以堆死人的。
发表于 : 2007-11-24 18:46
由 mmxcq
不是我不太清楚它的那个索引值是怎么弄的
好象必须安顺序来
发表于 : 2007-11-24 19:02
由 stlxv
mmxcq 写了:不是我不太清楚它的那个索引值是怎么弄的
好象必须安顺序来
应该是0开始到count-1吧
如果是我,一般不会用到这个方法
你可以随便写一个
发表于 : 2007-11-24 23:48
由 mmxcq
呵呵我知道这个是从0开始
但是我用Math.random()这个方法随机产生的索引值
它就报组件位置错误
难道必须是依次的一个接着一个的排满啊
我用的是GridLayout这个布局管理器啊
8)

发表于 : 2007-11-24 23:53
由 stlxv

个人建议不要用布局管理器
如果要用,就按照次序一次性的添加;然后,最好是layout套layout
发表于 : 2007-11-25 0:19
由 zxkane
mmxcq 写了:呵呵我知道这个是从0开始
但是我用Math.random()这个方法随机产生的索引值
它就报组件位置错误
难道必须是依次的一个接着一个的排满啊
我用的是GridLayout这个布局管理器啊
8)

当然了。如果容器内只有3个对象,新添加对象index设为4的话是就超出范围了。可以理解为inerst
发表于 : 2007-11-25 12:52
由 mmxcq
zxkane 写了:mmxcq 写了:呵呵我知道这个是从0开始
但是我用Math.random()这个方法随机产生的索引值
它就报组件位置错误
难道必须是依次的一个接着一个的排满啊
我用的是GridLayout这个布局管理器啊
8)

当然了。如果容器内只有3个对象,新添加对象index设为4的话是就超出范围了。可以理解为inerst
什么叫假设容器只有3个对象
应该是容器里面应该可以放很多个对象的把
发表于 : 2007-11-25 12:56
由 stlxv
mmxcq 写了:zxkane 写了:mmxcq 写了:呵呵我知道这个是从0开始
但是我用Math.random()这个方法随机产生的索引值
它就报组件位置错误
难道必须是依次的一个接着一个的排满啊
我用的是GridLayout这个布局管理器啊
8)

当然了。如果容器内只有3个对象,新添加对象index设为4的话是就超出范围了。可以理解为inerst
什么叫假设容器只有3个对象
应该是容器里面应该可以放很多个对象的把

做这个还是用图形化的编辑器吧
发表于 : 2007-11-25 13:34
由 reulis
在Container的内部有一个列表(其实是个数组)用来保存这个Container已经有的组件,每次往里面添加一个组件的时候会加到这个列表里面,因为这个列表其实是用数组来维护的,所以会有边界问题。所以一般来说如果要指定index添加,需保证不越界,或者不指定index添加,这时候默认的加在最后。
实际上Container会在一定程度上为你保证添加时候的安全,当然仅限于你指定的index刚好是已有的列表长度时候,这个时候Container会自动的重新设定列表的长度。但是正如这里说的,仅仅适用于这种情况,如果你的这个index是随机产生的,那难保不超出列表长度的一大截,这个时候Container就报wrong position的异常了,它不会为你需要添加两个组件但是去创建一个长度为1000的列表。
发表于 : 2007-11-25 13:48
由 mmxcq
呵呵说得太好了高手

发表于 : 2007-11-25 13:52
由 reulis
不是高手,多看看文档就好了,或者去看java源代码。一看就明白了。
学好java看文档是必需的。
发表于 : 2007-11-26 8:14
由 qzjackie