2012-05-13 31 views
0

我有一個SWT表。當我點擊時,我不想選擇整行,而是選擇某些單元格。那可能嗎?選擇單元而不是swt表中的行

我當前的代碼是:

tableViewer = new TableViewer(parent, SWT.NONE); 
    Table table = tableViewer.getTable(); 
    this.tableViewer.getTable().setLayoutData(
      new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1)); 
    TableLayout layout = new TableLayout(); 
    layout.addColumnData(new ColumnWeightData(20, 20, true)); 
    layout.addColumnData(new ColumnWeightData(20, 20, true)); 
    this.tableViewer.getTable().setLayout(layout); 
    table.setHeaderVisible(true); 
    table.setLinesVisible(true); 
    tableViewer.setContentProvider(new ArrayContentProvider()); 
    tableViewer.setLabelProvider(new ITableLabelProvider() { 
       ... 

回答

0

轉到JFace Snippets,並搜索 「電池」。有幾個有用的代碼片段可供選擇...

1

默認實現是隻有單元格被選中而不是行。在你的情況下,整行被選中,因爲你選擇了fullSelection爲true。 用這個替換你的代碼,它應該可以工作。

this.tableViewer.getTable().setLayoutData(
     new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1)); 
1

如果你想要得到的單元格的文本可以使用getCell()

this.tableViewer.getTable().addMouseListener(new MouseAdapter() { 
    public void mouseDown(MouseEvent e) { 
     ViewerCell viewerCell = this.tableViewer.getCell(new Point(e.x,e.y)); 
     String cellText = viewerCell.getText(); 
     System.out.println("Cell clicked: " + cellText); 
    } 
}); 
相關問題