Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
2 / 2 / 1
Регистрация: 27.09.2013
Сообщений: 111

Как в Java дождаться инициализации объекта из другой JFrame?

16.03.2016, 18:10. Показов 1065. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Итак есть главная форма (JFrame класс), в которой создается другая форма. В эту другую форму (JFrame класс) кидается(в конструктор) пустой объект некого класса для его инициализации.
Проблема в том что после создания другой формы, главная продолжает свою работу. Я хочу сделать так чтобы после создания дочерней формы главная форма дожидалась инициализации объекта, который она закинула. И только потом продолжала работать. Как это сделать?
Создание дочерней формы:
Java
1
2
3
4
5
6
7
8
9
10
Player player;
...
public void mouseClicked(MouseEvent arg0) {
    NewPlayerFrame npf = new NewPlayerFrame(player);
 
    //Вот тут поставить на паузу, пока player не инициализирован (== null)
 
    gameLabel.startGame();
    menuPanel.requestFocus();
}
пробовал ставить цикл с Thread.sleep(); с условием пока (player == null). Но тогда главная и дочерняя форма зацикливались (зависали).
Цель всего этого:
Нажимаю на батон НАЧАТЬ ИГРУ. Первым делом создается игрок --> открывается новая форма NewPlayerFrame(). В ней создается имя игрока и т.п.. Только после создания игрока ( инициализации объекта player и закрытия дочерней формы) Главная форма запускает игру.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.03.2016, 18:10
Ответы с готовыми решениями:

Дождаться инициализации программы и передать аргументы
Доброго времени суток форумчане, сторонней программе нужно время для инициализации а файл для открытия не готов как отследить завершение...

Как закрыть первый JFrame и открыть другой?
Есть меню(интерфейс пользователя) и графическая заставка, они находятся в разных пакетах как сделать чтобы при нажатии кнопки в заставке...

Как в Java при закрытии JFrame завершить приложение полностью?
Hi, All! Если нажать на крестик у JFrame, он закроется, а консольное приложение не закрывается пока не нажмешь <Ctrl+C>. Как...

4
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
16.03.2016, 18:18
не прокатит?
Java
1
while (player == null) {}
0
2 / 2 / 1
Регистрация: 27.09.2013
Сообщений: 111
16.03.2016, 18:20  [ТС]
КОП, неа, пробовал. зацикливает
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,693
Записей в блоге: 29
16.03.2016, 19:43
можно попробовать блокирующие потоки или объявить переменную player volatile, а вообще без кода сложно сказать
0
2 / 2 / 1
Регистрация: 27.09.2013
Сообщений: 111
16.03.2016, 20:28  [ТС]
Спасибо всем. Проблему решил с JDialog.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.03.2016, 20:28
Помогаю со студенческими работами здесь

Как правильно вызывать функцию объекта из другой функции того же объекта?
Доброго дня и ночи, уважаемые программисты! Существует некоторая проблема, на которую я наткнулся, решая задачу по программированию из...

Дождаться загрузки объекта изображения
$("form").submit(function() { images = new Image(); images.onload = function () { alert('load'); return true;} ...

Проходил ли кто-то видео-курс techpro? Как у них получилось JFrame в JFrame добавить
Проходил ли кто-то видео-курс techpro? Как у них получилось JFrame в JFrame добавить? http://teachpro.ru/Course/JavaforBeginners...

Как закрыть один JFrame и открыть новый JFrame?
привет подскажите как реализовать. есть отдельный класс с выпадающим меню(там три пункта). есть отдельный класс который рисует фрейм,...

Как сделать Jframe внутри другого JFrame
Доброго времени суток джентльмены и леди. Как сделать так, что бы внутри главного JFrame запустить несколько других...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru