繁体   English   中英

如何隐藏(隐藏)SWT TableItem?

[英]How can I (un)hide a SWT TableItem?

我试图让我的用户搜索信息表,动态隐藏/显示包含搜索的结果。 我的隐藏部分已经放下,而且效果很好,但是一旦更改搜索条件,我就无法再次显示表格项目。

这是我的隐藏代码:

searchField.addModifyListener(new ModifyListener() {
            @Override
            public void modifyText(ModifyEvent arg0) {
                modified = true;
                for (int i = 0; i < table.getItems().length; i++) {
                    if (!(table.getItem(i).getText(2)
                            .contains(searchField.getText()))) {
                        table.getItem(i).dispose();
                    }

                }
                if ("".equals(searchField.getText())) {
                    modified = false;
                                    //where I would want to un-hide items
                }
            }
        });

查看您的代码,看来您试图通过调用dispose() 隐藏item 如果您放置一个小部件,它将永远消失。 你无法取回它。

如果要取消隐藏 ,则必须在以前隐藏的具有相同内容的位置处创建一个新项目。

实际使用某种表模型和JFace绑定不是更好,而是那样做吗? 是的,处置并没有隐藏。 您可能应该从表中删除该项目。

在调用dispose之前,您可能必须将TableItem的数据保存到集合中。 然后,当您再次搜索时,可以检查该集合以及是否找到匹配项,然后通过创建新TableItem将其重新插入Table

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM