在关闭Netbeans向导之前要求确认

时间:2018-07-10 13:30:14

标签: java swing netbeans-platform

我们的应用程序中有一个基于Netbeans平台的向导。我需要询问用户,如果她使用“取消”按钮或Esc或“ X”按钮,是否真的要关闭它。

我试图用这样的windowClosing添加窗口侦听器

WizardDescriptor.ArrayIterator<WizardDescriptor> wizardIterator
            = new WizardDescriptor.ArrayIterator<>(panels);
WizardDescriptor wiz = new WizardDescriptor(wizardIterator);
wiz.setNoDefaultClose(true);

wiz.setTitleFormat(new MessageFormat("{0}"));
wiz.setTitle(getTitle());

Dialog dialog = DialogDisplayer.getDefault().createDialog(wiz);
dialog.addWindowListener(new WindowAdapter() {
    @Override
    public void windowClosing(WindowEvent e) {
        if (JOptionPane.showConfirmDialog(dialog, "Are you sure?")
                == JOptionPane.OK_OPTION) {
            super.windowClosing(e);
        } else {
            System.out.println("Cancelled.");
        }
    }
});
dialog.setVisible(true);
if (wiz.getValue() == WizardDescriptor.FINISH_OPTION) {
     finish(wiz);
}

但是仅在关闭对话框后,此显示确认对话框才会显示。

仅当我使用“ X”按钮关闭对话框时,才会调用侦听器。

如何防止对话框关闭?

要监听Esc键的事件是什么?

0 个答案:

没有答案