Eclipse的Wizard是由一系列WizardPage組成的。缺省情況下,WizardDialog在初始化的時候就會調用每個WizardPage的createControl()方法來布局這些WizardPage,這是為了方便決定WizardDialog窗口的大小。但如果某個WizardPage里的控件是需要動態生成的,例如,用戶在Page1里輸入一個整數n,Page2里要根據這個整數生成n個文本框,由于Page2的createControl()只有一次被調用的機會,并且在得到n之前就被WizardDialog調用過了,集中布局的方式就為生成Page2的界面帶來了困難。
和問題的描述比起來,解決的方法簡單很多,只要覆蓋Wizard的createPageControls()方法讓它什么都不要做就可以了
@Override
public void createPageControls(Composite pageContainer) {
//super.createPageControls(pageContainer);
}