eclipse-把TableViewer中的数据排序

2025-05-18 01:44:03

1、打开这个文件vpshangpinxinxi.java,增加继承ViewerSorter的排序类。

eclipse-把TableViewer中的数据排序

3、继承ViewerSorter的排序类,其中重写这个compare这方法,把当前列的数值两个比较,返回int苒锃巳伢值(1大于,0等于,-1小于)。写好这个比较方法java系统自动调用。在排序类每一个表中的列为一个整形数值,正数为升序,负数为降序(例如:1列是升序,-1列是降序)。public class shujupaixu extends ViewerSorter {private int lx; //列是升序或者降序 例如:lx=fenlei; lx=-fenlei;private static final int fenlei=1; // 分类列定义常数变量1private static final int mingcheng=2;private static final int jiage=3;private static final int hyjiage=4;public shujupaixu(int lx){this.lx=lx;}public int compare(Viewer viewer, Object e1, Object e2) {Shangpinxinxi sp1=(Shangpinxinxi)e1;Shangpinxinxi sp2=(Shangpinxinxi)e2;switch(lx){case fenlei:{String sz1=sp1.getfenlei();String sz2=sp2.getfenlei();return sz1.compareTo(sz2);}case -fenlei:{String sz1=sp1.getfenlei();String sz2=sp2.getfenlei();return sz2.compareTo(sz1);}case mingcheng:{String sz1=sp1.getmingcheng();String sz2=sp2.getmingcheng();return sz1.compareTo(sz2);}case -mingcheng:{String sz1=sp1.getmingcheng();String sz2=sp2.getmingcheng();return sz2.compareTo(sz1);}case jiage:{Float sz1=sp1.getjiage();Float sz2=sp2.getjiage();return sz1.compareTo(sz2);}case -jiage:{Float sz1=sp1.getjiage();Float sz2=sp2.getjiage();return sz2.compareTo(sz1);}case hyjiage:{Float sz1=sp1.gethyjiage();Float sz2=sp2.gethyjiage();return sz1.compareTo(sz2);}case -hyjiage:{Float sz1=sp1.gethyjiage();Float sz2=sp2.gethyjiage();return sz2.compareTo(sz1);}}return 0;}}

eclipse-把TableViewer中的数据排序

5、java的条件选择 a?b:c,下面用这个条件初始化排序类。如果lx=true时 返回shujupaixu.fenlei这个数据,表示这个列是升序序列如果lx=false时 返回-shujupaixu.fenlei这个数据,表示这个列是降序序列lx?shujupaixu.fenlei:-shujupaixu.fenlei下图是名称列

eclipse-把TableViewer中的数据排序

7、运行项目,促发列表头的监视事件,TableViewer中的数据在升序和降序排序数据。

eclipse-把TableViewer中的数据排序
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢