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