2016-04-29 69 views
1

在JFace的向导中的字段我创建扩展Wizard一个JFace的向导PCWizard和具有延伸WizardPage PCPageOnePCPageTwoPCPageThreePCPageFour四页。如何清除上按下后退按钮

  1. 当我到达最后一页时,我想禁用后退和取消按钮。
  2. 当我按下其他页面上的后退按钮时,我希望页面的小部件中的数据被清除,而当我再次按下时,我希望文本字段为空,以便下一个按钮不会被激活。

我还捕获了在另一个班级收集的数据,如果你想要我重写WizardDialog类,并采取行动我该怎么做。我是新来的Java和SWT更详尽的解释是fine.Thanx提前

回答

0

覆盖的WizardPagesetVisible方法清除场时,页面会变为活动:

@Override 
public void setVisible(final boolean visible) 
{ 
    super.setVisible(visible); 

    if (visible) { 
    // TODO clear your fields 
    } 
} 
+0

谢谢格雷格,这工作... ...,我还有一个疑问,如何让来第一页,链接/按钮在向导的最后一个向导页面上按下,应该像一个普通的新打开的向导一样工作......我试着通过保持选择监听器来调用第一个,但其他页面却没有启用,你可以看看它.. –

+0

我是这个新东西,我如何接受解决方案... –

+0

只需点击答案旁边的勾号。 –

0

要禁用后退按钮做最后一页如下:

@Override 
public IWizardPage getPreviousPage() { 
    // prevent going back 
    return null; 
} 

而且清除输入的页面可能在IPageChangedListener完成:

WizardDialog dialog = new WizardDialog(Display.getCurrent().getActiveShell(), wizard); 
dialog.addPageChangedListener(new IPageChangedListener() { 
    public void pageChanged(PageChangedEvent event) { 
     // this is just a suggestion.. 
     IClearablePage page = (IClearablePage)event.getSelectedPage(); 
     page.clear(); 
    } 
}); 

哪里IClearablePage是你自己的接口与clear(),和所有网页实现IClearablePage

编辑:覆盖setVisible作为格雷格在他的答案中说可能更方便。