我正在尝试创建一个jface向导。 在我的向导中,我有我的" startpage"。我在" startpage"中选择的选项取决于将跟随多少页面。但在我看来,不可能这样做。因为在向导启动后调用 addPages() 方法。 addPage() 方法是私有的。但我需要在那里添加我的页面,因为当我在其他地方执行此操作时, createControl(复合父级) 不会被调用。
有没有解决方法如何解决这个问题? 我想过写一个自己的方法......像这样:
public void addNewPage() {
Page page = new Page("pagename");
page.createControl(parent);
page.setDescription("");}
...
但它不起作用。 你们有解决我问题的方法吗?
答案 0 :(得分:0)
您可以在向导addPages
中添加所有页面,然后覆盖getNextPage
以控制按下“下一步”时显示的页面。
如果这还不够,您可以随时编写自己的IWizard
界面实现。
答案 1 :(得分:0)
如果符合条件(org.eclipse.jface.wizard.Wizard.getNextPage
在下面的代码段中),您可以通过覆盖conditionForMorePages
来返回新页面来执行此操作:
@Override
public IWizardPage getNextPage() {
IWizardPage nextPage = super.getNextPage(page);
if (nextPage == null) {
if (conditionForMorePages){
// we need an additional page.
IWizardPage nextPage = new MyAdditionalPage();
}
}
return nextPage;
}
如果您的向导仅以一页开头,那么"返回"和" next"默认情况下不显示按钮。如果有可能动态地启动更多步骤,则需要显示导航按钮。您可以通过使用API
设置正确的标志来实现public void setForcePreviousAndNextButtons(boolean b)