簡體   English   中英

如何將Netbeans向導模塊添加到自己的項目?

[英]How to add a Netbeans Wizard module to own project?

我的問題與主題類似:
如何在自己的項目中使用netbeans模塊?
但是我在調​​用創建向導時遇到了問題。 我已將向導源和庫復制到我自己的項目中。
現在,我想在應用程序中單擊某些按鈕后調用向導(按鈕代碼執行的方法如下-它是由Netbeans生成的):

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


因此,現在,在調用按鈕的單擊向導的框架之后,但是當我單擊“下一個”按鈕時,它消失了(它應該轉到第二個向導的框架)。
有人可以幫忙如何正確調用向導嗎?

我也討厭向導消失的問題。 之所以會發生這種情況,是因為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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM