Swt 如何根据输入的文本在JFace中过滤表查看器

Swt 如何根据输入的文本在JFace中过滤表查看器,swt,jface,rcp,e4,tableviewer,Swt,Jface,Rcp,E4,Tableviewer,我已经使用表格查看器创建了一个表格,现在我需要根据文本框中输入的文本进行过滤,因此我们如何过滤表格创建表格的代码如下 TableViewerColumn消息=新的TableViewerColumn(查看器,SWT.NONE); message.getColumn().setWidth(800); message.getColumn().setText(“消息”); message.setLabelProvider(新ColumnLabelProvider() { @凌驾 公共无效更新(Viewe

我已经使用表格查看器创建了一个表格,现在我需要根据文本框中输入的文本进行过滤,因此我们如何过滤表格创建表格的代码如下

TableViewerColumn消息=新的TableViewerColumn(查看器,SWT.NONE);
message.getColumn().setWidth(800);
message.getColumn().setText(“消息”);
message.setLabelProvider(新ColumnLabelProvider()
{
@凌驾
公共无效更新(ViewerCell单元格)
{
对象元素=cell.getElement();
if(MyObject的元素实例)
{
MyObject obj=(MyObject)元素;
cell.setText(obj.getMessage());
}
}
});
}
私有静态类MyObject
{
私有字符串优先;
私有字符串第二;
私有字符串消息;
公共MyObject(字符串第一,字符串第二,字符串消息)
{
this.first=first;
这个秒=秒;
this.message=消息;
}
公共字符串getFirst()
{
先返回;
}
公共void setFirst(字符串优先)
{
this.first=first;
}
公共字符串getSecond()
{
返回第二;
}
公共无效设置秒(字符串消息)
{
这个秒=秒;
}
公共字符串getMessage()
{
返回消息;
}
公共无效设置消息(字符串消息)
{
this.message=消息;
}

现在我们如何筛选表。由于我是jface table viewer的新手,请帮助我使用从
ViewerFilter
派生的类添加筛选器:

类MyFilter扩展了ViewerFilter { @凌驾 公共布尔选择(查看器、对象父元素、对象元素) { MyObject obj=(MyObject)元素; //TODO返回true以包含对象,返回false以排除对象 } } 将其添加到表中,并使用:

viewer.addFilter(新的MyFilter());
召唤

viewer.refresh();

使查看器在文本更改时重新运行筛选器。

我可以筛选除消息coloum之外的所有冒号。代码如下所示