【问题标题】:JFace: Change Color of TreeItem in TreeViewerJFace:在 TreeViewer 中更改 TreeItem 的颜色
【发布时间】: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


【解决方案1】:

查看此示例here。有关 JFace 的更多示例see here

【讨论】:

    猜你喜欢
    • 2023-03-27
    • 2014-02-07
    • 2014-04-26
    • 2022-06-13
    • 1970-01-01
    • 2023-01-04
    • 1970-01-01
    • 1970-01-01
    • 2016-08-14
    相关资源
    最近更新 更多