java阻止人们关闭

时间:2010-12-14 16:19:58

标签: java swing

嗨,我有一个全屏程序,我不希望别人关闭,除非他们有密码我现在有这个代码

public void windowClosing(WindowEvent arg0)
{
    System.out.println("HERE");
    String inputValue = JOptionPane.showInputDialog("Please input the closeword");

    if (inputValue != "closeplz")
    {

    }
} 
在if语句中

我希望它停止方法,以便程序能够关闭。感谢ste的任何帮助都会有很大的帮助。

2 个答案:

答案 0 :(得分:7)

你必须致电

setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

JFrame实例上(或内部)。然后,除非您手动执行,否则帧不会关闭,但仍会调用windowClosing()。在其中,您可以有条件地调用

System.exit(1);

将结束申请。务必先进行必要的清理工作。

答案 1 :(得分:1)

查看Closing an Applicaton以获取简单的课程,以帮助您解决此问题。您需要提供自定义关闭操作,提示用户输入密码。

使用您的简单示例代码将是:

Action ca = new AbstractAction()
{
    public void actionPerformed(ActionEvent e)
    {
        JFrame frame = (JFrame)e.getSource();

        String inputValue = JOptionPane.showInputDialog("Please input the closeword");


        if (! inputValue.equals("closeplz"))
        {
            frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
        }
    }
};

CloseListener cl = new CloseListener(ca);