2016-04-29 72 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作爲格雷格在他的答案中說可能更方便。