【问题标题】:Adding JFace wizard pages after addPages() was called?在调用 addPages() 之后添加 JFace 向导页面?
【发布时间】:2013-10-24 05:09:32
【问题描述】:

我正在尝试创建一个 jface 向导。 在我的向导中,我有我的“起始页”。我在“起始页”中选择的选项取决于后面有多少页。但在我看来,这是不可能的。因为 addPages() 方法在向导启动后被调用。 addPage() 方法是私有的。但是我需要在那里添加我的页面,因为当我在其他地方执行此操作时,createControl(Composite parent) 不会被调用。

有什么办法可以解决这个问题吗? 我想过写一个自己的方法。像这样:

public void addNewPage() {
Page page = new Page("pagename");
page.createControl(parent);
page.setDescription("");}
...

但它不起作用。 你们有什么解决我的问题的办法吗?

【问题讨论】:

    标签: java eclipse-plugin jface wizard


    【解决方案1】:

    您可以在向导addPages 中添加所有页面,然后覆盖getNextPage 以控制按下下一步时显示哪些页面。

    如果这还不够,您可以随时编写自己的 IWizard 接口实现。

    【讨论】:

    • 在向导开始时,我什至还不知道我需要哪些(以及多少)页面(包括内容)。所以似乎没有合适的解决方案。无论如何,谢谢,我现在要尝试编写自己的实现;)
    【解决方案2】:

    如果满足条件,您可以通过覆盖org.eclipse.jface.wizard.Wizard.getNextPage 来返回一个新页面(下面的sn-p 中的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;
    }
    

    如果您的向导仅从一页开始,默认情况下不会出现“返回”和“下一步”按钮。如果您有可能动态出现更多步骤,则需要显示导航按钮。您可以通过使用 API 设置正确的标志来做到这一点

    public void setForcePreviousAndNextButtons(boolean b)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-30
      • 1970-01-01
      • 1970-01-01
      • 2018-06-01
      相关资源
      最近更新 更多