Eclipse J-Face向导:如何动态创建下一页?

bak*_*202 2 java eclipse jface eclipse-rcp wizard

我有一个带有单页的eclipse JFace向导(让我们称之为page1),它被添加到mainWizard使用中addPage(page1).

我希望有一个第二页(page2),但这只能从一个确定的值创建page1(因此不能添加到mainWizard)

page1当我按下它的下一个按钮时,有没有办法可以添加它?

编辑:目前我已经创建了新页面page1,然后重写getNextPage()如下

@Override
public IWizardPage getNextPage() {
 if (page2 != null) {
  return page2;
 }
 System.err.println("page not populated");
 return null;
}
Run Code Online (Sandbox Code Playgroud)

虽然我没有得到"页面未填充"的消息,但是当我按下下一个时,我会NullPointerException打开一个WizardDialog.setWizard.

小智 5

org.eclipse.jface.wizard.Wizard有需要动态地添加页面的所有在最后的现有步骤.getNextPage如果满足条件,您可以通过覆盖返回新页面来执行此操作:

@Override
public IWizardPage getNextPage() {
   IWizardPage nextPage = super.getNextPage(page);
   if (nextPage == null) {
      if (userInputRequiresMorePage){
         // The user input is such that we need an additional page to append to the wizard.
         IWizardPage nextPage = new MyAdditionalPage();
      }
   }
   return nextPage;
}
Run Code Online (Sandbox Code Playgroud)

如果向导仅以一页开头,则默认情况下不会显示"后退"和"下一步"按钮.由于您可能需要更多步骤,因此您需要显示它们.您可以通过使用API​​设置正确的标志来实现

public void org.eclipse.jface.wizard.Wizard.setForcePreviousAndNextButtons(boolean b)
Run Code Online (Sandbox Code Playgroud)