gpt4 book ai didi

java - 如何在动态更新的 JFace TableViewer 上添加 ViewerFilter?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:23:05 26 4
gpt4 key购买 nike

我想在 SWT/JFace 应用程序中添加一个搜索功能,当用户在搜索文本字段中输入文本时过滤 TableViewer。

final Text filterText = new Text(parent, SWT.NONE);
filterText.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent arg0) {
//TODO how to update the viewer filter with the new text ?
}
});

TableViewer tableViewer = new TableViewer(...);

ViewerFilter filterViewer = new ViewerFilter() {
@Override
public boolean select(Viewer viewer, Object parentElement, Object element) {
if (filterText.getText() == "") {
return true;
}
//do my stuff to know if element need to be filtered or not
return false;
}
};
tableViewer.addFilter(filterViewer);

我是否需要删除过滤器并在修改监听器中创建一个新过滤器,还是有更好的解决方案?

最佳答案

基本上,您需要有一种将输入的文本传递给过滤器的方法,在您的选择方法中您应该根据此文本进行过滤,并在您的文本小部件的监听器中将文本传递给过滤器并调用 viewer .refresh() 在你的 table 上。

这个例子应该可以帮助你:http://www.vogella.com/tutorials/EclipseJFaceTableAdvanced/article.html#jfacetable_filter

关于java - 如何在动态更新的 JFace TableViewer 上添加 ViewerFilter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6095231/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com