TreeViewer颜色行替代



我是eclipse SWT的新手。我试图覆盖ITableColorProvidergetBackground方法,以替代treeViewer的颜色行。我尝试用行索引(index%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 );
        }

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;
        }
    }

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

相关内容

  • 没有找到相关文章

最新更新