0

我正在使用 aTableViewer并且我试图让所有列都假设其最长的文本项的宽度。

到目前为止,我已经创建了一个TableLayout将列添加到表中。问题是添加列需要使用ColumnWeightDatawhich 迫使我为列指定大小。但是,我事先并不确切知道该列的宽度应该是多少——它可以是任何东西。

theTableViewer = new TableViewer(comp, SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION);
GridData theTableGridData = new GridData(SWT.FILL, SWT.FILL, true, true);
theTableViewer.getTable().setLayoutData(theTableGridData);
TableLayout layout = new TableLayout();
layout.addColumnData(new ColumnWeightData(100, true));
layout.addColumnData(new ColumnWeightData(100, true));
layout.addColumnData(new ColumnWeightData(100, true));
layout.addColumnData(new ColumnWeightData(100, true));

有谁知道如何让 TableViewer 自动正确调整其列的大小以包含所有内容?

4

1 回答 1

1

没有内置的方法可以做到这一点。当表格内容发生变化时,您必须监听事件并自己计算大小。

于 2013-08-15T06:43:58.443 回答