2012-06-19 3 views
3

У меня есть JFrame, который при создании экземпляра вызывает пользовательский JDialog (Login). Если логин успешно, я хочу, чтобы jFrame был видимым. И если пользователь нажимает escape/cancel в этом диалоговом окне входа в систему, все приложение должно быть закрыто.Swing-закрыть все приложение, когда диалог отменен

Как я могу сделать так ...

В настоящее время, если я распоряжаюсь диалогом фрейма становится видимым.

+1

Мог бы также просто назвать 'System.exit (-1);' – maksimov

+0

Почему бы вам не сделать приложение, чтобы показать диалог только первый логин и если он успешно зарегистрирован в начале JFrame? –

ответ

5

Если у вас есть доступ к вашему JFrame через frame переменную, вы можете просто позвонить:

frame.dispatchEvent(new WindowEvent(frame, WindowEvent.WINDOW_CLOSING)); 

Это, вероятно, лучше, чем вызов System.exit() как это позволит вам запускать некоторые очистки кода, если вы зарегистрированы прослушиватель окна, закрывающий ваш кадр.

+0

+1 Здесь есть пример [здесь] (http://stackoverflow.com/a/8336218/230513). – trashgod

3

Вы можете переопределить событие закрытия диалогового:

dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); 

dialog.addWindowListener(new WindowAdapter() { 

    public void windowClosing(WindowEvent we) { 
    //Release you source, close all your frames or call a brutal System.exit(0); 
    } 
}); 
Смежные вопросы