在树中父级和子级在java中的SWT中检查并取消选中组合

时间:2017-03-01 15:08:11

标签: java eclipse eclipse-plugin swt eclipse-rcp

我正在实施一棵树。此树有五个treecolumn,在设计时默认选中五个treecolumn第一列复选框。

现在我创建了两个treeitem第一个父亲和第二个孩子。所有数据都来自此treeItem中的数据库。

如果我选中父复选框,则应自动选中所有子复选框。enter link description here

如果我取消选中父级,则应取消选中所有孩子。我怎样才能克服这种情况呢?

1 个答案:

答案 0 :(得分:1)

  

在eclipse rcp(Java)中使用树选中或取消选中所有子项的

父项。

tree.addListener(SWT.Selection, new Listener() {
      public void handleEvent(Event event) {
       if (event.detail == SWT.CHECK) {
        TreeItem item = (TreeItem) event.item;
        boolean checked = item.getChecked();
        checkItems(item, checked);
        }
     }
});
  

checkItems()方法两个参数第一个树项和第二个布尔值是否已选中

static void checkItems(TreeItem item, boolean checked) {
     item.setGrayed(false);
     item.setChecked(checked);
     TreeItem[] items = item.getItems();
     for (int i = 0; i < items.length; i++) {
        checkItems(items[i], checked);
     }
}