私の質問はトピックに似ています:
自分のプロジェクトで netbeans モジュールを使用するには?
しかし、作成したウィザードの呼び出しに問題があります。ウィザードのソースとライブラリを自分のプロジェクトにコピーしました。
今、私は自分のアプリケーションでいくつかのボタンをクリックした後にウィザードを呼び出したいです (以下のボタンアクション実行メソッドのコード - Netbeans によって生成されます):
したがって、ボタンをクリックした後、ウィザードのフレームが呼び出されますが、「次へ」をクリックすると消えます。ボタン (2 番目のウィザードのフレームに移動する必要があります)。
誰かがウィザードを適切に呼び出す方法を手伝ってもらえますか? private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
DemoWizardAction d = new DemoWizardAction();
d.actionPerformed(evt);
}
質問する
593 次
1 に答える
0
また、魔法使いが消えたという問題も嫌いです。これは、ボタンがクリックされると のTrivial
実装がダイアログを閉じるために発生していました。DialogDisplayer
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);
}
于 2013-09-01T08:02:49.570 に答える