Ява остановить людей от закрытия - PullRequest
2 голосов
/ 14 декабря 2010

Привет, у меня полноэкранная программа, которую я не хочу, чтобы люди закрывали, если у них нет пароля. У меня есть этот код на данный момент

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

    if (inputValue != "closeplz")
    {

    }
} 

в операторе if я хочу, чтобы он остановил метод, чтобы программа была закрыта. любая помощь будет значительно сокращена благодаря ste

Ответы [ 2 ]

7 голосов
/ 14 декабря 2010

Вы должны позвонить

setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

на (или внутри) экземпляре JFrame. Тогда кадр не закроется, если вы не сделаете это вручную, хотя windowClosing() все равно будет вызываться. Внутри него вы можете условно позвонить

System.exit(1);

, который завершит приложение. Обязательно сначала выполните необходимую очистку.

1 голос
/ 14 декабря 2010

Проверьте Закрытие приложения для простого класса, чтобы помочь вам в этом. Вам нужно будет предоставить настраиваемое действие закрытия, которое запрашивает у пользователя пароль.

Используя ваш простой пример, код будет:

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...