如何在Jface tableviewer中为行添加备用颜色

时间:2017-05-12 20:51:50

标签: swt jface

我正在使用带有OwnerDrawLabelProvider的Jface表查看器来表示多行行,现在我想为行添加备用颜色。我尝试使用colLabelProvider,但它覆盖了OwnerDrawLabelProvider。我如何实现这两个目标?

提前致谢!

1 个答案:

答案 0 :(得分:2)

如果您使用OwnerDrawLabelProvider,则必须在提供商处执行此操作。您可以使用以下内容填充erase方法中的单元格背景:

@Override
protected void erase(Event event, Object element)
{
  Table table = (Table)event.widget;
  TableItem item = (TableItem)event.item;

  int row = table.indexOf(item);

  Color color;
  if ((row & 1) == 0)
    color = event.gc.getDevice().getSystemColor(SWT.COLOR_GREEN);
  else
    color = event.gc.getDevice().getSystemColor(SWT.COLOR_RED);

  event.gc.setBackground(color);

  event.gc.fillRectangle(event.x, event.y, event.width, event.height);
}