Java 搜寻「;“隐藏数据”;在过滤树中
如何在过滤后的树状视图中搜索“隐藏”数据。到目前为止,我只能搜索树名并过滤它们。现在我想搜索存储在TreeObject中的数据。 我应该将要搜索的字符串附加到哪里 我试图变得更详细: 我有一个:Java 搜寻「;“隐藏数据”;在过滤树中,java,eclipse,filter,tree,Java,Eclipse,Filter,Tree,如何在过滤后的树状视图中搜索“隐藏”数据。到目前为止,我只能搜索树名并过滤它们。现在我想搜索存储在TreeObject中的数据。 我应该将要搜索的字符串附加到哪里 我试图变得更详细: 我有一个: class TreeObject implements IAdaptable { protected String name; protected String Data; private TreeParent parent; .... 现在我想搜索它的 pro
class TreeObject implements IAdaptable {
protected String name;
protected String Data;
private TreeParent parent; ....
现在我想搜索它的
protected String Data;
我如何访问:
-树对象
-过滤树状视图的texfield文本
在这里,您可以看到可以覆盖的方法的图片:
这是我使用另一种过滤器类型得到的结果:
您必须覆盖
选择方法,您正在过滤树中设置该方法。从的Javadoc中选择:
返回给定元素是否通过此筛选器
因此,在您的实现中,您可以检查对象的字段,并决定是否应该过滤掉它
示例(不知道是否编译)
您不需要访问文本字段。您只需告诉FilteredTree它应该如何将文本与对象进行比较。请看我的答案。eclipse说,我无法覆盖该方法,因为它是最终的。哦,好吧,然后使用ViewerFilter
。但是ViewerFilter不能在FilteredTree中使用。因为我认为只支持模式过滤器。但是“PatternFilter=new PatternFilter();”没有要重写的select-函数。@schwenk它有:@schwenk InTreeViewer
它是抽象的。使用我在回答中提到的这个类。
TreeViewer viewer = filteredTree.getViewer();
viewer.addFilter(new ViewerFilter() {
@Override
public boolean select(Viewer viewer, Object parentElement, Object element) {
if (element instanceof TreeObject && filterString != null && !filterString.isEmpty()) {
TreeObject obj = (TreeObject) element;
String data = obj.getData().toLowerCase(); // Your Data field!
return data.startsWith(filterString.toLowerCase());
}
return true;
}
});