如何在 Jface tableviewer 中向行添加替代颜色

How to add alternate colors to rows in Jface tableviewer

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

提前致谢!

如果您正在使用 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);
}