在许多情况下,表条目在运行时会更改,以反映数据模型中的更改。向数据模型添加条目也需要调整列的大小,但在我的情况下,在修改模型后调用.pack()并不能完全解决问题。在带有装饰的 particolar 中,最后一个条目永远不会调整大小。此接缝是由于异步表查看器更新。这个截图解决了我的问题:
public class LabelDecoratorProvider extends DecoratingStyledCellLabelProvider {
public LabelDecoratorProvider(IStyledLabelProvider labelProvider,
ILabelDecorator decorator, IDecorationContext decorationContext) {
super(labelProvider, decorator, decorationContext);
}
@Override
public void update(ViewerCell cell) {
super.update(cell);
if (TableViewer.class.isInstance(getViewer())) {
TableViewer tableViewer = ((TableViewer)getViewer());
Table table = tableViewer.getTable();
for (int i = 0, n = table.getColumnCount(); i < n; i++)
table.getColumn(i).pack();
}
}
}