1

我想禁用(仅虚拟)我的 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());
        }
    }
4

1 回答 1

0

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

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

如果要更改树项的颜色,请使用LabelProviderwhich 实现IColorProvider或派生自的标签提供程序StyledCellLabelProvider

于 2013-11-12T21:38:25.200 回答