如何更改jface表的背景选择颜色

在elipse-rcp应用程序中,我正在为jface表中的行设置背景颜色,但我不希望选择更改此颜色。 我希望能够指定所选行的颜色更改。

根据这个post ,对于JFace ViewersListViewerTableTree ),通过使用EraseItemMeasureItem事件

“ 自定义绘图表和树项 ”一文中详述的一般原则

SWT.EraseItem :允许客户端自定义绘制单元格的背景和/或选择,并影响是否应绘制单元格的前景

替代文字

 table.addListener(SWT.EraseItem, new Listener() { public void handleEvent(Event event) { event.detail &= ~SWT.HOT; if ((event.detail & SWT.SELECTED) == 0) return; /// item not selected Table table =(Table)event.widget; TableItem item =(TableItem)event.item; int clientWidth = table.getClientArea().width; GC gc = event.gc; Color oldForeground = gc.getForeground(); Color oldBackground = gc.getBackground(); gc.setBackground(colorBackground); gc.setForeground(colorForeground); gc.fillRectangle(0, event.y, clientWidth, event.height); gc.setForeground(oldForeground); gc.setBackground(oldBackground); event.detail &= ~SWT.SELECTED; } });