2015-08-18 2 views
3

Меня научили добавлять это, чтобы всегда добавлять это в метод запуска jframe, но это ничего не меняет по сравнению с тем, что его не используют.В чем смысл setDefaultCloseOperation (WindowConstants.EXIT_ON_CLOSE) ;?

Что я хочу знать, что происходит, когда вы оставляете это?

Благодаря

@Override 
public void run() { 
    frame = new JFrame(title); 
    frame.setPreferredSize(new Dimension(400, 200)); 
    //frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 
    createComponents(frame.getContentPane()); 
    frame.pack(); 
    frame.setVisible(true); 
} 

ответ

2

Процесс ваше приложение будет по-прежнему остаются в памяти.

Это из официальной документации:

-DO_NOTHING_ON_CLOSE (определено в WindowConstants): Ничего не делать; требуют, чтобы программа обрабатывала операцию в методе windowClosing зарегистрированного объекта WindowListener.

-HIDE_ON_CLOSE (определено в WindowConstants): автоматически скрыть кадр после вызова любых зарегистрированных объектов WindowListener.

-DISPOSE_ON_CLOSE (определено в WindowConstants): автоматически скрывать и удалять кадр после вызова любых зарегистрированных объектов WindowListener.

-EXIT_ON_CLOSE (определено в JFrame): выйдите из приложения, используя метод выхода из системы. Используйте это только в приложениях.

0

setDefaultCloseOperation (WindowConstants.EXIT_ON_CLOSE) используется для закрытия вашего JFrame, а также Java-процесса. Протестируйте его с помощью примера программы JFrame без setDefaultCloseOperaton. Закройте jframe, щелкнув по окнам. Проверьте свою диспетчер задач/верхнюю команду, вы увидите, что процесс java будет работать.

0

Я знаю, что это старый вопрос, но то, чему меня учили, это создать внутренний класс в классе, который расширяет JFrame.

Внутренний класс должен расширять WindowAdapter, и вы должны переопределить метод windowClosing, я обычно просто кладу System.exit (0); в этом.

Затем в конструкторе вашего класса JFrame добавьте эту строку: this.addWindowListener (новый MyWindowAdapterClass());