1、改变某一行的颜色
viewer.setContentProvider(new ContentProvider());
viewer.setLabelProvider(new TableLabelProvider());
viewer.setInput(list);
Color color = Display.getDefault().getSystemColor(SWT.COLOR_RED);
table.getItems()[table.getItemCount()-1].setBackground(color); //table.getItems()返回 TableItem[ ],
table.getItemCount()返回表格行数
[ ]中为index
table.redraw();
viewer.refresh();
2、改变某一列的颜色
Color color = Display.getDefault().getSystemColor(SWT.COLOR_RED);
col = createTableViewerColumn(titles[10], bounds[10], 10);
col.setLabelProvider(new CellLabelProvider() {
@Override
public void update(ViewerCell cell) {
cell.setText(((Indent) cell.getElement()).getComment()); //设置文本
cell.setBackground(color);//设置第11列颜色
}
});
col.setEditingSupport(new CommentEditingSupport(viewer));
3、两种颜色交叉显示
viewer.setContentProvider(new ContentProvider());
viewer.setLabelProvider(new TableLabelProvider());
viewer.setInput(list);
Color color = Display.getDefault().getSystemColor(SWT.COLOR_RED);
int count=table.getItemCount();
for(int i=0;i<count;i++)
{
if(i%2==0)
{
table.getItems()[i].setBackground(color);
table.redraw();
}
}
viewer.refresh();
4、录入tableviewer的新数据不同颜色
TableItem[] ttlist; //排好序的界面表格
List<Indent> listPdf;//最新读进数据库的记录集合
//排好序的事件下面
private SelectionAdapter getSelectionAdapter(final TableColumn column,
final int index) {
SelectionAdapter selectionAdapter = new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
comparator.setColumn(index);
int dir = comparator.getDirection();
viewer.getTable().setSortDirection(dir);
viewer.refresh();
//设置颜色,下面是构造排好顺序的表格
int countNo=table.getItemCount();
//System.out.println(ind.size());
ttlist=table.getItems();
for(int t=0;t<countNo;t++)
{
TableItem temp=ttlist[t];
if(listPdf.contains((Indent)temp.getData()))//排好序的表格行与新纪录中数据相等
{
temp.setBackground(colorYellow); //设置颜色
}
else
{
temp.setBackground(colorNone);//旧的数据及其它数据本来的颜色
}
table.redraw();
}
}
};
return selectionAdapter;
}