![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Mirkes |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 586 Регистрация: 18.8.2011 Где: Красноярск Репутация: 7 Всего: 17 |
Out of memory После закрытия JFrame на него сохраняются ссылки и память не oсвобождается.
Я создаю и отображаю JFrame следующим образом
После некоторой работы с ним я его закрываю щелчком по крестику. После возникновения Out of memory я создал snapshot и с удивлением обнаружил, что ссылка на давно закрытый MyFrame сохранилась и память не освободилась. Ссылки сохранились в различных "встроенных" объектах типа Actions добавленных в меню и панель инструментов, в "parent javax.swing.JRootPane(2)" и т.п. Что нужно сделать, что бы память освободилась? Написать процедуру разборки MyFrame? Как должен называться такой метод? -------------------- Mirkes |
|||
|
||||
| dorogoyIV |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 26.3.2007 Репутация: 3 Всего: 46 |
а операция закрытия прописана?
|
|||
|
||||
| Mirkes |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 586 Регистрация: 18.8.2011 Где: Красноярск Репутация: 7 Всего: 17 |
MyFrame не главная форма. Я создю ее многократно и столь же многократно закрываю. Для не главных форм тоже надо указывать операцию при закрытии?
Это сообщение отредактировал(а) Mirkes - 29.4.2013, 09:55 -------------------- Mirkes |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15719 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
dispose() вызываешь?
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Mirkes |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 586 Регистрация: 18.8.2011 Где: Красноярск Репутация: 7 Всего: 17 |
Нет. А где его вызывать? Ловить событие закрытия окна? Мне удалось победить проблему добавлением следующей строки
Я так понимаю, что ето (черт возьми где в транслите буква, которая должна быть первой в последнем слове перед скобкой?) приблизительно тоже самое, что и вызов dispose(). В документации сказано:
Следует ли ето понимать так, что JFrame предназначен только для главной формы приложения, а для всего остального следует использовать JDialog и JInternalFrame? Собственно оцновная проблема решена, но хотелось бы узнать ваше мнение по поводу вопроса об ицпользовании JFrame, JDialog и JInternalFrame. Спасибо dorogoyIV и LSD Это сообщение отредактировал(а) Mirkes - 29.4.2013, 11:22 -------------------- Mirkes |
||||||
|
|||||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15719 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Да, это приводит к автоматическому вызову dispose() при закрытии окна. Добавлено через 3 минуты и 30 секунд
Нет. Зависит от того что ты пытаешься реализовать. JInternalFrame предназначен для MDI интерфейса, JFrame - SDI. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |