2010-09-28 40 views
1

我的向导在Eclipse 3.6.1中没有正确渲染。这让我想知道:什么时候必须使用Composite.pack()?一些SWT的例子有它,有些则没有。SWT Composite需要3.6.1中的包()

我的向导页面呈现方式取决于目标平台。如果我在3.5.2中运行我的插件,只要打开它们,它们就会正确渲染。但在3.6.1中,他们的内容区域在第一个时候是空白的。这些页面使用GridLayout。

如果我使用鼠标调整向导对话框的大小,它立即渲染就好了。 如果我在传递给DialogPage.setControl()的控件上调用pack(),页面呈现,但不够宽。随后的大小修改了宽度。

有人可以发光吗?有什么时候使用pack()的一般规则?

(与Swing标签,因为专家有可能有答案以及SWTers。)

回答

2

pack()设定的目标为它的默认大小大小。它通常用在Shell S,因为平时父母的Layout正在呼吁setSize()为它管理的小部件的护理。你可能会更好您Composite的家长明确地设置一些Layout(例如,FillLayout),而不是调用pack()