2014-01-29 57 views
1

我創建了tableviewer(jface)如何保持滾動時不會移動的列?

我有一列有icon.The列顯示編輯的圖標,如果表中的項目有變化。

是否可以這樣做,一列不會移動,當我滾動表格時(從左到右滾動),將始終鎖定。 這可能是我有50列,我希望第一列將始終鎖定,用戶可以看到圖標。

這是的tableViwer

public class MyGridViewer extends TableViewer { 
public MyGridViewer (Composite parent) { 
super(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER); 

final Table table = this.getTable(); 
table.setHeaderVisible(true); 
table.setLinesVisible(true); 

this.setContentProvider(new MyModelProvider()); 

    } 
    } 


@Override 
protected void inputChanged(Object input, Object oldInput) { 

removeColumn(); 



    tableCol = new TableViewerColumn(this, SWT.NONE); 
    column = tableCol.getColumn(); 
    column.setText(dataColumnHeader.getName()); 
    column.setWidth(100); 
    column.setResizable(true); 
    column.setMoveable(true); 
    tableCol.setLabelProvider(new ColumnLabelProvider() { 
     @Override 
     public String getText(Object element) { 
      DataRow r = (DataRow) element; 
      DataCell c = r.getDataCellByName(dataColumnHeader.getName()); 
      if (c != null && c.getValue() != null) { 
       return c.getValue().toString(); 
      } 
      return null; 
     } 
     @Override 
     public Image getImage(Object element) { 
       //Add my imgae 
     } 
    }); 



editingSupport = new StringCellEditingSupport(this, dataColumnHeader); 
tableCol.setEditingSupport(editingSupport); 
    super.inputChanged(input, oldInput); 

}

回答

1

這的代碼不能用一個表來完成。你可以有兩個表格查看器,一個用於凍結列,另一個用於其他表格。你將不得不同步兩個表的垂直滾動。 There is a snipped with sample code

或者我相信Eclipse NatTable支持凍結列。

相關問題