Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何保持滚动时不移动的列?_Java_Jface - Fatal编程技术网

Java 如何保持滚动时不移动的列?

Java 如何保持滚动时不移动的列?,java,jface,Java,Jface,我创建了tableviewer(jface) 我有一个带有图标的列。如果表中的项目发生更改,该列将显示编辑图标 当我滚动表格(从左向右滚动)时,是否可能有一列不移动且始终锁定。 这可能是我有50列,我希望第一列将始终锁定,用户可以看到图标 这是tableViwer的代码 public class MyGridViewer extends TableViewer { public MyGridViewer (Composite parent) { super(parent, SWT.MULTI

我创建了tableviewer(jface)

我有一个带有图标的列。如果表中的项目发生更改,该列将显示编辑图标

当我滚动表格(从左向右滚动)时,是否可能有一列不移动且始终锁定。 这可能是我有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);

}

这不能用一个表来完成。您可以有两个表查看器,一个用于冻结列,另一个用于其余列。您必须同步两个表的垂直滚动

或者,我相信Eclipse支持冻结列