2013-07-24 89 views
1

我的問題是呈三角話題:
How to use netbeans module in my own project?
,但我有一個調用創建嚮導的問題。 我已將嚮導源和庫複製到我自己的項目中。
現在我想點擊我的應用程序的一些按鈕之後調用嚮導(下面的按鈕操作執行方法的代碼 - 它是由Netbeans的生成):

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
DemoWizardAction d = new DemoWizardAction(); d.actionPerformed(evt); }


所以,現在,經過按鈕的點擊向導的框架被調用,但當我點擊「下一步」按鈕時它會消失(它應該轉到第二個嚮導的框架)。
有人可以幫助如何正確調用嚮導嗎?如何將Netbeans嚮導模塊添加到自己的項目?

回答

0

我也解決了我的嚮導消失的問題。這是因爲DialogDisplayerTrivial實現在關閉按鈕後單擊對話框。

我的解決方案:不要使用notify()方法。

我的代碼示例:

public void actionPerformed(final ActionEvent e) { 
    final List<WizardDescriptor.Panel<WizardDescriptor>> panels = new ArrayList<WizardDescriptor.Panel<WizardDescriptor>>(); 
    panels.add(new WizardPanel()); 
    panels.add(new WizardPanel2()); 
    final String[] steps = new String[panels.size()]; 
    for (int i = 0; i < panels.size(); i++) { 
    final Component c = panels.get(i).getComponent(); 
    // Default step name to component name of panel. 
    steps[i] = c.getName(); 
    if (c instanceof JComponent) { // assume Swing components 
     final JComponent jc = (JComponent) c; 
     jc.putClientProperty(WizardDescriptor.PROP_CONTENT_SELECTED_INDEX, i); 
     jc.putClientProperty(WizardDescriptor.PROP_CONTENT_DATA, steps); 
     jc.putClientProperty(WizardDescriptor.PROP_AUTO_WIZARD_STYLE, true); 
     jc.putClientProperty(WizardDescriptor.PROP_CONTENT_DISPLAYED, true); 
     jc.putClientProperty(WizardDescriptor.PROP_CONTENT_NUMBERED, true); 
     // jc.putClientProperty(WizardDescriptor.PROP_IMAGE, 
     // ImageUtilities.loadImage("com/skytron/pvgw/icons/logo40.png", true)); 
     // jc.putClientProperty(WizardDescriptor.PROP_IMAGE_ALIGNMENT, "South"); 
    } 
    } 

    final WizardDescriptor wiz = new WizardDescriptor(
     new WizardDescriptor.ArrayIterator<WizardDescriptor>(panels)); 
    // {0} will be replaced by WizardDesriptor.Panel.getComponent().getName() 
    wiz.setTitleFormat(new MessageFormat("{0}")); 
    wiz.setTitle("...dialog title..."); 

    // this does not work outside of netbeans!!! 
    // if (DialogDisplayer.getDefault().notify(wiz) == 
    // WizardDescriptor.FINISH_OPTION) { 
    // do something 
    // } 

    // create a dialog and set it visible. 
    final Dialog wizardDialog = DialogDisplayer.getDefault().createDialog(wiz); 
    wizardDialog.setVisible(true); 
} 
相關問題