Как программно закрыть JFrame

Точно таким же образом Вы делаете на средстве моделирования. Существует очень немного (важных) различий между устройством и средством моделирования, и доступ к файлу и загрузка библиотеки являются по большей части не частью их.

239
задан Nathan 31 March 2016 в 13:28
поделиться

5 ответов

Если вы хотите, чтобы графический интерфейс вел себя так, как если бы вы нажали кнопку закрытия X , тогда вам необходимо отправить событие закрытия окна в Window . ExitAction из Закрытие приложения позволяет вам легко добавить эту функцию к пункту меню или любому компоненту, который использует Action s.

frame.dispatchEvent(new WindowEvent(frame, WindowEvent.WINDOW_CLOSING));
307
ответ дан 23 November 2019 в 03:19
поделиться
 setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
0
ответ дан 23 November 2019 в 03:19
поделиться

Если под Alt-F4 или X вы имеете в виду «Немедленно выйти из приложения, не обращая внимания на то, какие другие окна или потоки работают», то System.exit (...) сделает в точности то, что вы хотите, очень резким, грубым и, возможно, проблемным способом.

Если под Alt-F4 или X вы имеете в виду скрыть окно, то frame.setVisible (false) - это то, как вы "закрываете" окно. Окно продолжит потреблять ресурсы / память, но его можно будет снова сделать видимым очень быстро.

Если под Alt-F4 или X вы имеете в виду скрыть окно и избавиться от любых ресурсов, которые оно потребляет, то frame.dispose ( ) - это то, как вы "закрываете" окно. Если фрейм был последним видимым окном и не было запущено других потоков, не являющихся демонами, программа завершится. Если вы снова откроете окно, ему придется повторно инициализировать все собственные ресурсы (графический буфер, дескрипторы окон и т. Д.).

dispose () может быть наиболее близким к тому поведению, которое вам действительно нужно. Если в вашем приложении открыто несколько окон, хотите ли вы, чтобы Alt-F4 или X закрыли приложение или просто закрыли активное окно?

Учебное пособие по Java Swing по оконным прослушивателям может помочь вам прояснить ситуацию.

25
ответ дан 23 November 2019 в 03:19
поделиться
setVisible(false); //you can't see me!
dispose(); //Destroy the JFrame object

Не слишком сложно.

126
ответ дан 23 November 2019 в 03:19
поделиться

setDefaultCloseOperation (WindowConstants.EXIT_ON_CLOSE);

Не только закрывает JFrame, но и отключает все приложение, следовательно, "ВЫХОД НА ЗАКРЫТИЕ"

Для достижения того же результата вы должны эффективно выйти из приложения, для этого просто вызовите

 System.exit(0);

Эффект точно такой же.

5
ответ дан 23 November 2019 в 03:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: