我正在使用JDialog窗口在显示实际应用程序之前显示“pin entry”窗口的形式。由于我似乎无法隐藏关闭按钮,我试图控制单击此按钮时发生的情况。目标是使对话框再次打开(从而阻止访问它后面的表单,除非输入正确的PIN),但WindowListener似乎不是正确的方法。
pinDialog = new JDialog();
pinDialog.setSize(300, 208);
pinDialog.setModalityType(Dialog.ModalityType.APPLICATION_MODAL);
pinDialog.setVisible(true);
pinDialog.addWindowListener(new WindowAdaptor(){
public void windowClosed(WindowEvent e)
{
//things to open the dialog again here
}
});
这里的最终语句(addWindowListener)似乎不是WindowAdaptor参数的正确类型,但是我已经看到很多使用这种方法的例子。问题是因为我使用的是JDialog而不是一个新的框架?
答案 0 :(得分:4)
但WindowListener似乎不是正确的方法。
您还需要使用:
dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
创建对话框时。然后,您可以控制WindowListener中的行为。
查看Closing an Application了解详情。这篇文章是针对一个框架的,但基础也适用于对话框。