-
小编研习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的排序类。
java中这个“compareTo”函数怎么使用,下面将使用这个函数比较两个数值的大小。当前数值大于比较数值的话返回1,当前数值等于比较数值的话返回0,当前数值小于比较数值的话返回-1。
Intager a=8;
a.compareTo(2);//返回1
a.compareTo(8); //返回0
a.compareTo(10);//返回-1
继承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;
}
}
选择排序的列表头,增加列表头的监视事件widgetSelected,只要点击列表头就促发事件。
java的条件选择 a?b:c,下面用这个条件初始化排序类。
如果lx=true时 返回shujupaixu.fenlei这个数据,表示这个列是升序序列
如果lx=false时 返回-shujupaixu.fenlei这个数据,表示这个列是降序序列
lx?shujupaixu.fenlei:-shujupaixu.fenlei
下图是名称列
在监视事件中定义布尔量初始化为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;
}
});
运行项目,促发列表头的监视事件,TableViewer中的数据在升序和降序排序数据。
猜您喜欢
- bgo是什么游戏 bg游戏是什么类型..2023-10-14
- ALCapture使用教程..2023-10-12
- 辨识万物怎么通过拍照识花..2023-10-09
- win7蓝牙在哪里 蓝牙怎么配对..2023-09-28
- 电脑屏保总是变黑怎么办 电脑屏保总..2023-09-27
- micro usb接口,小编教你什么是micro usb接..2023-03-06
相关推荐
- 联想拯救者:解锁摄像头,让游戏世界..2023-12-11
- Word如何只打印部分文字?Word只打印部..2021-03-19
- 鼠标不动了是怎么回事 电脑鼠标动不..2023-11-25
- 电脑怎样下载安装腾讯qq..2017-10-01
- 怎么打开使用电脑蓝牙..2017-06-22
- excel中怎样用身份证号计算年龄..2017-06-22