Chinaunix首页 | 论坛 | 博客
  • 博客访问: 169698
  • 博文数量: 13
  • 博客积分: 2530
  • 博客等级: 少校
  • 技术积分: 485
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-15 18:31
文章分类

全部博文(13)

文章存档

2008年(13)

我的朋友

分类: Java

2008-05-15 22:44:51

今天下午跟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开关,变量值,控制台,代码区
阅读(1798) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:在虚拟机中使用USB设备

给主人留下些什么吧!~~