如何在 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);
}
我正在为多行行使用带有 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);
}