Swt/Jface tableviewer入门教程四(加入filter ,改变行的颜色)

如果我们想根据某一列来过滤记录,如何实现呢?很简单,定义一个过滤器filter。这里只演示定义一个过滤器的情况。
现实中你可以定义多个灵活的过滤器,通过替换过滤器来实现各种各样的过滤。
一、过滤器代码:

import  org.eclipse.jface.viewers.Viewer;
import  org.eclipse.jface.viewers.ViewerFilter;

public   class  MyFilter  extends  ViewerFilter  {
    
public boolean select(Viewer viewer, Object parentElement, Object element) {
        People p 
= (People) element;
        
return p.getName().startsWith("张1");
    }

}
然后在testTableViewer的shell.open前加入这个过滤器
tableViewer.addFilter( new  MyFilter());
好了,看一下效果
二、如果我们想凸显某一条记录,想改变一下它的颜色,如果实现呢,简单,只要几句话就可以了。
Color color  =  Display.getDefault().getSystemColor(SWT.COLOR_RED);
table.getItems()[table.getItemCount()
- 1 ].setBackground(color);
table.redraw();

三、这里提一下,使用tabeViewer.setUseHashlookup(true)可以在tableviewer内部为数据记录和tableItem之间的映射创建一个hash表,这样可以加快tableItem的和记录间的查找速度,注意,这条语句必须在setInput之前加入才有效。
好了,到此tableviewer的基本的东西介绍的差不多了
source下载: http://www.blogjava.net/Files/dreamstone/jface-4.rar
四:在现实的开发中,我们更多的是喜欢把一些简单的类用匿名类或者内部类的方式来实现。像之前例子中每个都单独一个类的情况并不多。
下边是和前边的source效果等同的source,不过是使用了匿名类和内部类。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值