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