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