【发布时间】:2013-11-26 00:12:13
【问题描述】:
我尝试在包含我的 TreeViewer 的类中运行时更改特定 TreeNodes 的 BackgroundColor,但它不起作用:
....
Display display = Display.getCurrent();
for (TreeItem item : treeItems) {
if (item.getParentItem() != null) {
Object parentElement = item.getParentItem().getData();
if(parentElement instanceof Or){
System.out.println(item);
Color color = new Color(display,12, 197, 77);
item.setBackground(color);
item.setForeground(color);
}
}
}
......
我想知道为什么这不起作用,因为 TreeItem 有相应的方法。
请注意,我不想为此使用 Labelprovider,因为我必须检查节点之间的多个依赖关系以确定正确的颜色,因此,Labelprovider 不适合。
干杯, 菲尔
【问题讨论】:
-
如果您不想使用 LabelProvder,则不应使用 TreeViewer,因为它会一直咨询标签提供者。只需使用 SWT 树。在标签提供程序中执行此操作非常简单。您还必须为您创建的 Color 对象调用
dispose。 -
我想使用 labelprovider,但不是所有的。那么 Labelprovider 会覆盖我的 item.setBackground(color) 然后将其设置为默认颜色?我该如何调用 dispose?
标签: java eclipse colors jface treeviewer