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的宽度.
本文介绍了一种使用TableColumnLayout类来控制SWT表格中各列宽度的方法,并通过实例展示了如何根据权重设置列宽,同时提供了添加ControlListener以在窗口调整大小时重新计算列宽的技巧。
1613





