2012-07-31 44 views
0

我正在运行的JFace向导中添加新的动态网页,通过覆盖在getNext方法删除动态页面的JFace向导

public IWizardPage getNextPage() 
{ 
    for (int i=0; i<10; i++) 
    { 
     MyPage dynamic = new MyPage("dynamic"+i) 
     wizard.addPage(dynamic); 
    } 
    return dynamic0; 
} 

有没有删除在接下来的时间中所有的动态页面的流程经过getNextPage()选项方法。

+0

它只是例子,我想回到我创建 – user1205079 2012-07-31 11:42:26

+0

你应该总是张贴码的第一页,这将汇编。也许发布SSCCE(www.sscce.org) – Baz 2012-07-31 11:43:21

+1

'Wizard'有一个包含所有'IWIzardPage'的字段'pages'。如果你实现自己的'Wizard',你可以创建一个'clear()'方法来删除和处理'pages'列表中的所有'IWizardPage'。 – Baz 2012-07-31 11:59:50

回答

0

通常,预先创建页面以使向导能够计算其最大尺寸。 “即时添加”页面可能会造成这方面的问题。

说了这些之后,没有办法进入包含页面的“页面”字段,以从该列表中删除页面。

一种替代方法是将页面标记为非活动状态,并在getNextPage()计算过程中跳过它。

喜欢的东西(这是从IWizard getNextPage):

public IWizardPage getNextPage(IWizardPage pPage) 
{ 
    MyPage myPage = (MyPage) super.getNextPage(pPage); 
    while(myPage != null && myPage.isInactive()) 
     { 
     myPage = (MyPage) super.getNextPage(myPage); 
    } 
    return myPage; 
}