我们的应用程序中有一个基于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键的事件是什么?