养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

eclipse中ViewerFilter实现过滤数据

时间:2024-10-29 06:32:34

在java编写的应用程序中,需要显示给用户表中的数据,可是一些table数据当前不需要显示,怎么处理这个问题,下面讲解ViewerFilter实现过滤。我写的经验对你学习java有帮助的话,给我投票或者点赞!http://v.youku.com/v_show/id_XMzk2NzI3NzQwOA==.html

http://v.youku.com/v_show/id_XMzk2NzI3NzQwOA==.html

工具/原料

eclipse4.5.2

方法/步骤

1、如果不熟悉这个TableViewer控件时,看看我以前的经验讲的TableViewer用法。打开这个vpshangpinxinxi.java,在这个文件中定义过滤的类。

eclipse中ViewerFilter实现过滤数据

2、继承ViewerFilter定义一个过滤类,类的名称根据你的喜好起:publicclasschaxunguolvextendsViewerFilter{}

eclipse中ViewerFilter实现过滤数据

3、覆盖select这个方法,需要过滤的数据都在这个方法中实现的。viewer:这个是TableViewer对象。parentElement:table中的所有数据。element:当前一行数据。@Override publicbooleanselect(Viewerviewer,ObjectparentElement,Objectelement){}

eclipse中ViewerFilter实现过滤数据

4、在过滤类中定义一个条件字符串privatestringtj.,实例化时把过滤条件转给类变量。privateStringtj;publicchaxunguolv(Stringtj){ this.tj=tj; }

eclipse中ViewerFilter实现过滤数据

5、重写select这个方法,如果返回true把当前数据显示在t瞢铍库祢able中,否者把当前数据过滤掉。(我是挹掷秦把把分类,名称,助记码的字符串是否包含过滤条件,如果>=0的话,就返回true,显示)publicbooleanselect(Viewerviewer,ObjectparentElement,Objectelement){ Shangpinxinxisp=(Shangpinxinxi)element; if(sp.getfenlei().indexOf(tj)>=0||sp.getmingcheng().indexOf(tj)>=0||sp.getzhujima().indexOf(tj)>=0){ lv=true; }else{ lv=false; } returnlv; }

eclipse中ViewerFilter实现过滤数据

6、在“查询数据”时怎么实现过滤:tv:是TableViewer对象的变量tv.resetFilters();这个函数是把以前的过滤删除tv.addFilter:增加过滤text.getText():过滤条件字符串chaxunguolv:过滤类 tv.addFilter(newchaxunguolv(text.getText()));

eclipse中ViewerFilter实现过滤数据

7、运酚祯馄嫱行项目,实现过滤。过滤类的完整代码: publicclasschaxunguolvextendsViewerFilter{ privateStringtj; priv锾攒揉敫atebooleanlv=false; publicchaxunguolv(Stringtj){ this.tj=tj; } @Override publicbooleanselect(Viewerviewer,ObjectparentElement,Objectelement){ Shangpinxinxisp=(Shangpinxinxi)element; if(sp.getfenlei().indexOf(tj)>=0||sp.getmingcheng().indexOf(tj)>=0||sp.getzhujima().indexOf(tj)>=0){ lv=true; }else{ lv=false; } returnlv; } }

eclipse中ViewerFilter实现过滤数据

© 一点知识