我正在使用TableViewer
,我正在尝试让所有列都采用其最长文本项的宽度。
到目前为止,我已经创建了一个TableLayout
来将列添加到表中。问题是添加列需要使用ColumnWeightData
,这迫使我指定列的大小。但是,我事先并不确切知道列的宽度应该是什么 - 它可以是任何东西。
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自动调整其列的大小以包含所有内容?
答案 0 :(得分:1)
没有内置方法可以做到这一点。当桌子的内容发生变化时,你必须听取事件并自己计算尺寸。