JFace:Setgrayed不适用于treeviewer

时间:2013-11-12 20:49:02

标签: java eclipse treeview swt jface

我想在我的treeviewer中禁用(仅虚拟)某些特定节点,但它似乎对我的节点没有影响。我也尝试设置一个也不起作用的背景。关于这个的任何想法?

private void setSelectedElements(TreeItem[] treeItems) {
        for (TreeItem item : treeItems) {
            Object obj = item.getData();
            if (item.getParentItem() != null) {
                Object parentElement = item.getParentItem().getData();
                if (parentElement instanceof Mandatory) {
                    setChecked(item);
                    Display display = Display.getCurrent();
                    item.setGrayed(true);
                    item.setBackground(display.getSystemColor(SWT.COLOR_GRAY));
                }
            }
            setSelectedElements(item.getItems());
        }
    }

1 个答案:

答案 0 :(得分:0)

setGrayed用于更改复选框树或表中复选框的状态。它不会更改树项颜色。来自setGrayed的JavaDoc:

  

设置此项目的复选框的灰色状态。仅当使用SWT.CHECK样式创建树时,此状态更改才适用。

如果要更改树项目的颜色,请使用实现LabelProvider的{​​{1}}或从IColorProvider派生的标签提供程序。