电脑系统吧 专业的电脑操作系统,支持重装各种原版系统xp/win7/win8/win10 这个系统怎么样?试试电脑系统吧系统,体验办公系统畅快愉悦感。 各种电脑系统安装过程一样,神一般的畅快!
当前位置:主页 > 电脑技术 >

小编研习eclipse-把TableViewer中的数据排序

作者:郭若兮 分类:电脑技术 发布时间:2017-09-19 18:04:36

电脑现已成为我们工作、生活和娱乐必不可少的工具了,在使用电脑的过程中,可能会遇到eclipse-把TableViewer中的数据排序的问题,如果我们遇到了eclipse-把TableViewer中的数据排序的情况,该怎么处理怎么才能解决eclipse-把TableViewer中的数据排序带来的困扰呢,对于这样的问题其实我们只需要eclipse mars 2打开这个文件vpshangpinxinxi.java,增加继承ViewerSorter的排序类。java中这个“compareTo”函数怎么使用,下面将使用这个函数比较两个数值的大小。当前数值大于比...

电脑现已成为我们工作、生活和娱乐必不可少的工具了,在使用电脑的过程中,可能会遇到eclipse-把TableViewer中的数据排序的问题,如果我们遇到了eclipse-把TableViewer中的数据排序的情况,该怎么处理怎么才能解决eclipse-把TableViewer中的数据排序带来的困扰呢,对于这样的问题其实我们只需要eclipse mars 2打开这个文件vpshangpinxinxi.java,增加继承ViewerSorter的排序类。java中这个“compareTo”函数怎么使用,下面将使用这个函数比较两个数值的大小。当前数值大于比较数值的话返回1,当前数值等于比较数值的话返回0,当前数值小于比较数值的话返回-1。Intager a=8;a.compareTo(2);//返回1a.compareTo(8这样就解决了这样的问题,接下来给大家带来eclipse-把TableViewer中的数据排序的详细操作步骤。

工具/原料

eclipse mars 2

方法/步骤

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

小编研习eclipse-把TableViewer中的数据排序

java中这个“compareTo”函数怎么使用,下面将使用这个函数比较两个数值的大小。当前数值大于比较数值的话返回1,当前数值等于比较数值的话返回0,当前数值小于比较数值的话返回-1。

Intager a=8;

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

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

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

小编研习eclipse-把TableViewer中的数据排序

继承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;

}

}

小编研习eclipse-把TableViewer中的数据排序

选择排序的列表头,增加列表头的监视事件widgetSelected,只要点击列表头就促发事件。

小编研习eclipse-把TableViewer中的数据排序

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

如果lx=true时 返回shujupaixu.fenlei这个数据,表示这个列是升序序列

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

lx?shujupaixu.fenlei:-shujupaixu.fenlei

下图是名称列

小编研习eclipse-把TableViewer中的数据排序

在监视事件中定义布尔量初始化为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;

}

});

小编研习eclipse-把TableViewer中的数据排序

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

小编研习eclipse-把TableViewer中的数据排序

xp教程 更多>>
win7教程 更多>>
win8教程 更多>>
win10教程 更多>>
U盘教程 更多>>
电脑技术 更多>>
电脑系统吧

版权所有 © 2012-2020 电脑系统吧 免责声明:如没特殊注明,文章资源均来自于网络,如侵犯到您的权益,请及时通知我们,我们会及时处理,对电脑系统吧有任何投诉或建议,请与管理员联系. QQ:191064436