代码之家  ›  专栏  ›  技术社区  ›  Jaime

如何使列填充所有表?

  •  0
  • Jaime  · 技术社区  · 8 年前

    我创建了一个tableViewer,其中包含一个包含两列的表。事实上,这两列并没有填满所有的表区域,我想创建两个比例相同的列来填充它。

    代码:

    TableViewer viewer = new TableViewer(createProjectConfig, SWT.MULTI | SWT.H_SCROLL| SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
    TableViewerColumn viewerColumn = new TableViewerColumn(viewer, SWT.NONE);
    TableViewerColumn viewerColumn1 = new TableViewerColumn(viewer, SWT.NONE);
    
    Table createVariablesTable = viewer.getTable();
    createVariablesTable.setLayoutData(new FormData());
    createVariablesTable.setHeaderVisible(true);
    createVariablesTable.setLinesVisible(true);
    
    FormData createVariablesTableData = new FormData();
    createVariablesTableData.left = new FormAttachment(selectProjectPathLabel, 0, SWT.LEFT);
    createVariablesTableData.top = new FormAttachment(selectProjectPathLabel, 40, SWT.TOP);
    createVariablesTableData.right = new FormAttachment(selectProjectPathButton,0,SWT.RIGHT);
    createVariablesTableData.bottom = new FormAttachment(createProjectConfigButton,-10,SWT.TOP);
    createVariablesTable.setLayoutData(createVariablesTableData);
    
    TableColumn column = viewerColumn.getColumn();
    column.setText("${Variable}");
    column.setWidth(50);//Make this fill the half of the table
    column.setResizable(true);
    column.setMoveable(true);
    
    TableColumn column1 = viewerColumn1.getColumn();
    column1.setText("${AAA}");
    column1.setWidth(50);//Make this fill the half of the table
    column1.setResizable(true);
    column1.setMoveable(true);
    

    图片:

    enter image description here

    1 回复  |  直到 8 年前
        1
  •  1
  •   greg-449    8 年前

    您需要为表设置表布局。

    TableLayout tableLayout = new TableLayout();
    createVariablesTable.setLayout(tableLayout);
    

    tableLayout.addColumnData(new ColumnWeightData(50));
    
    tableLayout.addColumnData(new ColumnWeightData(50));
    

    同时,删除对 column.setWidth(50)