我在我的eclipse RCP应用程序中使用了一个带有tablecolumnlayout(对于它的父组合)的jface tableviewer。
我看到,在我看来,这些列的间距相等,以覆盖整个桌子的宽度。到目前为止一直都很好。
我们有一个功能,我们需要保存&加载表格布局。基本上用户可以隐藏/重新排序任意数量的列,他希望保存该特定的布局..
我使用eclipse首选项API来保存/检索表格布局。
当第一次打开视图时,视图将以默认布局(包含所有列和默认排序)打开。因此,每当视图加载时,我都会保存DEFAULT布局(使用默认排序和列宽),以便用户可以随时返回原始布局。
但是,这里的问题是当我尝试加载默认布局时,我发现列的间距不均匀,并且末尾有一个空列。
我可以做些什么来实现默认行为,其中列的间距相等,以覆盖表格的宽度?
注意:我尝试调用表的父组合的layout()或调用表和复合的重绘但是它没有用完。
答案 0 :(得分:0)
我解决了上述问题。
SWT在视图渲染期间增加列的给定宽度,以便占用整个表格宽度。
只有在即将渲染视图时(在激活部件期间),我才能获得每列增加的宽度。
如果我在使用tablecolumnlayout之后询问列宽,我仍然得到预定义的宽度。
作为解决方案,我移动了代码以在部件激活期间保存默认布局,以便获得实际增加的宽度。