TableColumnLayout 这个类可以实现你的要求,它可以用各列的权重来控制各列的宽度
tv = new TableViewer(parent, SWT.FULL_SELECTION);
Table table = tv.getTable();
table.setHeaderVisible(true);
table.setLinesVisible(true);
TableColumnLayout layout = new TableColumnLayout();
parent.setLayout(layout);
TableColumn col0 = new TableColumn(table, SWT.LEFT);
layout.setColumnData(col0, new ColumnWeightData(1));
col0.setText(headers[0]);
TableColumn col1 = new TableColumn(table, SWT.LEFT);
layout.setColumnData(col1, new ColumnWeightData(1));
col1.setText(headers[1]);
TableColumn col2 = new TableColumn(table, SWT.LEFT);
layout.setColumnData(col2, new ColumnWeightData(1));
col2.setText(headers[2]);
2
给table加上一个ControlListener, resize方法中去设置列的宽度为 table的宽度.