Jface tableviewer - 即使使用tablecolumnlayout,列也不会间隔开

时间:2014-10-13 17:43:52

标签: java eclipse swt eclipse-rcp jface

我在我的eclipse RCP应用程序中使用了一个带有tablecolumnlayout(对于它的父组合)的jface tableviewer。

我看到,在我看来,这些列的间距相等,以覆盖整个桌子的宽度。到目前为止一直都很好。

我们有一个功能,我们需要保存&加载表格布局。基本上用户可以隐藏/重新排序任意数量的列,他希望保存该特定的布局..

我使用eclipse首选项API来保存/检索表格布局。

当第一次打开视图时,视图将以默认布局(包含所有列和默认排序)打开。因此,每当视图加载时,我都会保存DEFAULT布局(使用默认排序和列宽),以便用户可以随时返回原始布局。

但是,这里的问题是当我尝试加载默认布局时,我发现列的间距不均匀,并且末尾有一个空列。

我可以做些什么来实现默认行为,其中列的间距相等,以覆盖表格的宽度?

注意:我尝试调用表的父组合的layout()或调用表和复合的重绘但是它没有用完。

1 个答案:

答案 0 :(得分:0)

我解决了上述问题。

SWT在视图渲染期间增加列的给定宽度,以便占用整个表格宽度。

只有在即将渲染视图时(在激活部件期间),我才能获得每列增加的宽度。

如果我在使用tablecolumnlayout之后询问列宽,我仍然得到预定义的宽度。

作为解决方案,我移动了代码以在部件激活期间保存默认布局,以便获得实际增加的宽度。