[英]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.