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