在显示我的实际应用程序之前,我正在使用JDialog窗口显示一种形式的“引脚输入”窗口。由于我似乎无法隐藏关闭按钮,因此我试图控制单击此按钮时发生的情况。目的是使对话框再次自行打开(因此,除非输入正确的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而不是新框架而引起的问题?

最佳答案

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


您还需要使用:

 dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);


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

查看Closing an Application以获得更多信息。本文适用于框架,但基础知识也适用于对话框。

10-08 01:22