Java 如何保持滚动时不移动的列?
我创建了tableviewer(jface) 我有一个带有图标的列。如果表中的项目发生更改,该列将显示编辑图标 当我滚动表格(从左向右滚动)时,是否可能有一列不移动且始终锁定。 这可能是我有50列,我希望第一列将始终锁定,用户可以看到图标 这是tableViwer的代码Java 如何保持滚动时不移动的列?,java,jface,Java,Jface,我创建了tableviewer(jface) 我有一个带有图标的列。如果表中的项目发生更改,该列将显示编辑图标 当我滚动表格(从左向右滚动)时,是否可能有一列不移动且始终锁定。 这可能是我有50列,我希望第一列将始终锁定,用户可以看到图标 这是tableViwer的代码 public class MyGridViewer extends TableViewer { public MyGridViewer (Composite parent) { super(parent, SWT.MULTI
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);
}这不能用一个表来完成。您可以有两个表查看器,一个用于冻结列,另一个用于其余列。您必须同步两个表的垂直滚动 或者,我相信Eclipse支持冻结列