Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse TreeViewer颜色行_Eclipse_User Interface_Plugins_Jface_Treeviewer - Fatal编程技术网

Eclipse TreeViewer颜色行

Eclipse TreeViewer颜色行,eclipse,user-interface,plugins,jface,treeviewer,Eclipse,User Interface,Plugins,Jface,Treeviewer,我是eclipse SWT的新手。我试图覆盖ITableColorProvider的getBackground方法,以替代treeViewer为行着色。我正在尝试使用行索引(索引%2==0)着色。它将为所有行着色 TreeViewer一次为一个单元格着色,而不是为行着色。任何关于如何实现它的指针(treeviewer的替代行颜色)或代码片段都将非常有用 List<TreeItem> treeItems = Arrays.asList( m_viewer.getTree().getIt

我是eclipse SWT的新手。我试图覆盖
ITableColorProvider
getBackground
方法,以替代treeViewer为行着色。我正在尝试使用行索引
(索引%2==0)
着色。它将为所有行着色

TreeViewer
一次为一个单元格着色,而不是为行着色。任何关于如何实现它的指针(treeviewer的替代行颜色)或代码片段都将非常有用

List<TreeItem> treeItems = Arrays.asList( m_viewer.getTree().getItems() );
int index = treeItems.indexOf( element );

if( index % 2 == 0 )
        {
            backgroundColor = Display.getDefault().getSystemColor(
                    SWT.COLOR_YELLOW );
        }
        else
        {
            backgroundColor = Display.getDefault().getSystemColor(
                    SWT.COLOR_GRAY );
        }
List treeItems=Arrays.asList(m_viewer.getTree().getItems());
int index=treeItems.indexOf(元素);
如果(索引%2==0)
{
backgroundColor=Display.getDefault().getSystemColor(
SWT颜色(黄色);
}
其他的
{
backgroundColor=Display.getDefault().getSystemColor(
颜色(灰色);
}

ITableColorProvider
用于
TableViewer
,对于
TreeViewer
扩展
LabelProvider
的类应实现
IColorProvider

public class MyLabelProvider extends LabelProvider implements IColorProvider{

        @Override
        public String getText(Object element) {
            //how the label is obtained for an element
        }

        @Override
        public Color getBackground(Object element) {
            if(((TreeItem) element).getId() % 2 == 0) {
                return Display.getCurrent().getSystemColor(SWT.COLOR_BLUE);
            }else{
                return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
            }                   
        }

        @Override
        public Color getForeground(Object element) {
            return null;
        }
    }

颜色类来自org.eclipse.swt.graphics.Color。我假设每个TreeItem都有一个连续生成的id属性

告诉我们您尝试的代码
元素
不是
TreeItem
,因此
indexOf
将不起作用。关于如何使它起作用,有什么建议吗?