我的向导在Eclipse 3.6.1中无法正确呈现。这让我想知道:什么时候必须使用Composite.pack()?一些SWT示例有它,有些则没有。
我的向导页面呈现方式取决于目标平台。如果我在3.5.2中运行我的插件,一旦打开它们就会正确呈现。但是在3.6.1中,它们的第一个内容区域是空白的。页面使用GridLayout。
如果我使用鼠标调整向导对话框的大小,它立即渲染就好了。 如果我在传递给DialogPage.setControl()的控件上调用pack(),页面呈现,但它不够宽。随后的调整大小会修复宽度。
有人能说些什么吗?什么时候使用pack()有一般规则?
(标记为Swing因为专家可能有答案以及SWT者。)
答案 0 :(得分:2)
pack()
将目标的大小设置为其默认大小。它通常在Shell
上使用,因为父级的Layout
通常负责为其管理的小部件调用setSize()
。您可能最好在Layout
的父级上明确设置一些FillLayout
(例如Composite
),而不是致电pack()
。