欢迎来到天天文库
浏览记录
ID:34725540
大小:82.18 KB
页数:4页
时间:2019-03-10
《rcp实现点击页面每一列进行排序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、RCP实现列字段排序1、效果图2、实现方法:ListenersortListener=newListener(){publicvoidhandleEvent(Evente){//determinenewsortcolumnanddirection---有图标信息TableColumnsortColumn=table.getSortColumn();//记录前一次点击的列TableColumncurrentColumn=(TableColumn)e.widget;//获取当前intdir=table.getSortDirection();//获取当前操作的是up还是d
2、ownif(sortColumn==currentColumn){//与前一次点击的列一样时dir=dir==SWT.UP?SWT.DOWN:SWT.UP;//修改当前操作}else{//与前一次点击的列不同时table.setSortColumn(currentColumn);//把当前的列信息存于SortColumndir=SWT.UP;//起始默认设置为up所以这里就是up}intk=0;TableColumncolumn[]=table.getColumns();//获取所有的列for(inti=0;i3、ntColumn.equals(column[i])){//判断当前列是第几列k=i;//获取当前列的序号}}finalintindex=k;finalintdirection=dir;finalListli=(List)tableViewer.getInput();//获取页面数据Comparatorc=newComparator(){//比较publicintcompare(Objectarg0,Objectarg1){这里是按照序号进行排序MBomhVOvo=(MBomhVO)arg0;//MBomhVO实体类MBomhVOvo3=(MBomhVO)arg1;4、//MBomhVO实体类inth=0;if(vo==vo3){return0;}if(direction==SWT.UP){returnvo.getSkNNum()>vo3.getSkNNum()?1:-1;}returnvo.getSkNNum()>vo3.getSkNNum()?-1:1;}};Collections.sort(li,c);//调用Collections的sort进行排序table.setSortDirection(dir);//把当前操作赋给SortDirectiontable.clearAll();//清空数据tabletableViewer5、.setInput(li);//把排序后的数据赋给tableViewer}};String[]colName=newString[]{"序号",存货名称",版本号",”是否有效”};boolean[]flg={true,true,true,false};//true表示显示false表示不显示int[]width={40,80,100,80};//每一列的宽度int[]order={0,1,2,3,4,5,6,7};//标示每一列TableColumncolumn;for(intn=0;n<8;n++){//给页面TABLE进行赋值column=newTableCo6、lumn(table,SWT.NONE);column.setText(colName[n]);if(!flg[n]){column.setResizable(flg[n]);column.setWidth(0);}else{column.setWidth(width[n]);}}table.setColumnOrder(order);for(inti=0;i7、);//调用上面的sortListener事件}}table.setSortColumn(table.getColumn(0));//默认第一列为操作列table.setSortDirection(SWT.UP);//默认第一列为UP操作publicclassMBomhVO{privateintskNNum=0;//序号privateStringskSNo="";//编码privateintskNVer=0;//版本号publicStringgetSkSNo(){returnskSNo;}publicvoidsetSkSNo(StringskSNo){this.
3、ntColumn.equals(column[i])){//判断当前列是第几列k=i;//获取当前列的序号}}finalintindex=k;finalintdirection=dir;finalListli=(List)tableViewer.getInput();//获取页面数据Comparatorc=newComparator(){//比较publicintcompare(Objectarg0,Objectarg1){这里是按照序号进行排序MBomhVOvo=(MBomhVO)arg0;//MBomhVO实体类MBomhVOvo3=(MBomhVO)arg1;
4、//MBomhVO实体类inth=0;if(vo==vo3){return0;}if(direction==SWT.UP){returnvo.getSkNNum()>vo3.getSkNNum()?1:-1;}returnvo.getSkNNum()>vo3.getSkNNum()?-1:1;}};Collections.sort(li,c);//调用Collections的sort进行排序table.setSortDirection(dir);//把当前操作赋给SortDirectiontable.clearAll();//清空数据tabletableViewer
5、.setInput(li);//把排序后的数据赋给tableViewer}};String[]colName=newString[]{"序号",存货名称",版本号",”是否有效”};boolean[]flg={true,true,true,false};//true表示显示false表示不显示int[]width={40,80,100,80};//每一列的宽度int[]order={0,1,2,3,4,5,6,7};//标示每一列TableColumncolumn;for(intn=0;n<8;n++){//给页面TABLE进行赋值column=newTableCo
6、lumn(table,SWT.NONE);column.setText(colName[n]);if(!flg[n]){column.setResizable(flg[n]);column.setWidth(0);}else{column.setWidth(width[n]);}}table.setColumnOrder(order);for(inti=0;i7、);//调用上面的sortListener事件}}table.setSortColumn(table.getColumn(0));//默认第一列为操作列table.setSortDirection(SWT.UP);//默认第一列为UP操作publicclassMBomhVO{privateintskNNum=0;//序号privateStringskSNo="";//编码privateintskNVer=0;//版本号publicStringgetSkSNo(){returnskSNo;}publicvoidsetSkSNo(StringskSNo){this.
7、);//调用上面的sortListener事件}}table.setSortColumn(table.getColumn(0));//默认第一列为操作列table.setSortDirection(SWT.UP);//默认第一列为UP操作publicclassMBomhVO{privateintskNNum=0;//序号privateStringskSNo="";//编码privateintskNVer=0;//版本号publicStringgetSkSNo(){returnskSNo;}publicvoidsetSkSNo(StringskSNo){this.
此文档下载收益归作者所有