eclipse-把TableViewer中的数据排序

怎么把eclipse中的TableViewer中的数据排序呢?点击列表头,让此中的数据按照升序或者降序摆列。下面一步一步怎么实现排序方式,我写的经验对你进修java有帮忙的话,给我投票、点赞或者保藏!

http://v.youku.com/v_show/id_XMzk2ODI2NDcwMA==.html

0中控件怎么具有编纂功能

1中实现过滤数据

0利用增添删除一行数据

东西/原料

  • eclipse mars 2

方式/步调

  1. 1

    打开这个文件vpshangpinxinxi.java,增添担当ViewerSorter的排序类。

  2. 2

    java中这个“compareTo”函数怎么利用,下面将利用这个函数比力两个数值的巨细。当前数值年夜于比力数值的话返回1,当前数值等于比力数值的话返回0,当前数值小于比力数值的话返回-1。

    Intager  a=8;

    a.compareTo(2);//返回1

    a.compareTo(8);  //返回0

    a.compareTo(10);//返回-1

  3. 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;              //  分类列界说常数变量1

    private 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;

    }

    }

  4. 4

    选择排序的列表头,增添列表头的监督事务widgetSelected,只要点击列表头就促发事务。

  5. 5

    java的前提选择 a?b:c,下面用这个前提初始化排序类。

    若是lx=true时  返回shujupaixu.fenlei这个数据,暗示这个列是升序序列

    若是lx=false时 返回-shujupaixu.fenlei这个数据,暗示这个列是降序序列

    lx?shujupaixu.fenlei:-shujupaixu.fenlei

    下图是名称列

  6. 6

    在监督事务中界说布尔量初始化为true,是暗示升序的状况,反之是降序的状况,事务在升序和降序瓜代运行的。

    tblclmnNewColumn.addSelectionListener(new SelectionAdapter() {

    boolean lx=true; 

    @Override

    public void widgetSelected(SelectionEvent e) {

    //设置排序

    tv.setSorter(new shujupaixu(lx?shujupaixu.fenlei:-shujupaixu.fenlei));

    lx=!lx;  

    }

    });

  7. 7

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

  • 发表于 2018-12-19 00:00
  • 阅读 ( 925 )
  • 分类:其他类型

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
admin
admin

0 篇文章

作家榜 »

  1. xiaonan123 189 文章
  2. 汤依妹儿 97 文章
  3. luogf229 46 文章
  4. jy02406749 45 文章
  5. 小凡 34 文章
  6. Daisy萌 32 文章
  7. 我的QQ3117863681 24 文章
  8. 华志健 23 文章

联系我们:uytrv@hotmail.com 问答工具