【问题标题】:How to add a Netbeans Wizard module to own project?如何将 Netbeans 向导模块添加到自己的项目中?
【发布时间】:2013-07-24 19:58:33
【问题描述】:

我的问题与主题类似:
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); }


所以现在,在按钮的单击向导框架被调用后,但是当我单击“下一步”按钮时它消失了(它应该转到第二个向导的框架)。
有人可以帮助如何正确调用向导吗?

【问题讨论】:

    标签: java swing netbeans wizard


    【解决方案1】:

    我也很讨厌我的向导消失了。这曾经发生过,因为一旦单击按钮,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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-21
      • 2017-03-17
      相关资源
      最近更新 更多