今天下午跟mahatma研究了半天怎样为列表的首行实现复制,一直不得结果.
程序是swt designer写的,实现功能比较简单:
把佛山一行的内容全部复制到南海,三水,顺德.
错误原因:
1.把佛山一行的内容添加到一维数组,故报下标越界错误;
2.没细心查找原因.
分析:
1.从行开始,先对行进行for循环,挨个取出第一列的名字,处理后判断当名字equals佛山的时候,ok,这一列的内容就是数据源.
2.记住此时的i值,因为这i行就是数据所在的行,定义一个站点数量的整型变量staCount,现在一共有4行,那么,就要从i+1行开始循环,一共循环3次.
3.把数据源挨个读出来,做3次行循环,然后做n次列循环,即可赋值给其他行.
实现代码如下:
int col = table.getColumnCount() ; //列数 int item = table.getItemCount() ; //行数 //站点数 int staCount = 3 ; //站名 String staName ; System.out.println("行数:"+item+",列数:"+col); for(int i=0;i<item;i++){ staName = table.getItem(i).getText(0).trim() ; if("佛山".equals(staName)){ System.out.println(staName); for(int x=i;x<=(staCount+i);x++){ for(int j=1;j<col;j++){ System.out.println(table.getItem(i).getText(j)) ; table.getItem(x).setText(j, table.getItem(i).getText(j)) ; } } } } }
|
注意:第二次循环是从i+1行开始的,因为i行是数据源,循环次数必须为站点数+行数,这样才能得到完成的赋值.
截图如下:
爽啊,哈哈~~~
在for或是其他的逻辑操作上,eclipse的debug模式应该是首要的选择,可以省去system.out.print的验证输出
4个窗口:
debug开关,变量值,控制台,代码区
阅读(1817) | 评论(0) | 转发(0) |