管理JDialog关闭行为

时间:2016-11-03 15:14:44

标签: java forms swing jdialog

我正在使用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而不是一个新的框架?

1 个答案:

答案 0 :(得分:4)

  

但WindowListener似乎不是正确的方法。

您还需要使用:

 dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);

创建对话框时。然后,您可以控制WindowListener中的行为。

查看Closing an Application了解详情。这篇文章是针对一个框架的,但基础也适用于对话框。