Display display = new Display();
    Shell shell 
= new Shell(display);
    
final Color red = display.getSystemColor(SWT.COLOR_RED);
    
final Color yellow = display.getSystemColor(SWT.COLOR_YELLOW);
    
final Table table = new Table(shell, SWT.FULL_SELECTION);
    table.setHeaderVisible(
true);
    
new TableColumn(table, SWT.NONE).setWidth(100);
    
new TableColumn(table, SWT.NONE).setWidth(100);
    
new TableColumn(table, SWT.NONE).setWidth(100);
    
for (int i = 0; i < 5; i++) {
       TableItem item 
= new TableItem(table, SWT.NONE);
       item.setText(
0"item " + i + " col 0");
       item.setText(
1"item " + i + " col 1");
       item.setText(
2"item " + i + " col 2");
    }
    table.pack();
    table.addListener(SWT.EraseItem, 
new Listener() {
       
public void handleEvent(Event event) {
          event.detail 
&= ~SWT.HOT;
          
if ((event.detail & SWT.SELECTED) == 0return/* item not selected */
          
int clientWidth = table.getClientArea().width;
          GC gc 
= event.gc;
          Color oldForeground 
= gc.getForeground();
          Color oldBackground 
= gc.getBackground();
          gc.setForeground(red);
          gc.setBackground(yellow);
          gc.fillGradientRectangle(
0, event.y, clientWidth, event.height, false);
          gc.setForeground(oldForeground);
          gc.setBackground(oldBackground);
          event.detail 
&= ~SWT.SELECTED;
       }
    });
    shell.pack();
    shell.open();
    
while (!shell.isDisposed()) {
       
if (!display.readAndDispatch()) display.sleep();
    }
    display.dispose();

相关文章: