![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| blur |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 9.11.2004 Репутация: нет Всего: 1 |
Я в основном потоке создаю фрейм и мне нужно приостановить исполнения основного потока до тех пор, пока не не закроется этот фрейм. Чувствую, что нужно создавать этот фрейм в новом потоке, вот только как это правильно реализовать?
|
|||
|
||||
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 31 Всего: 159 |
||||
|
||||
| blur |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 9.11.2004 Репутация: нет Всего: 1 |
Идея такая: сначала запускается форма для логина, если пользователь ввел правильные даные, то запускается главное окно программы (если нет то приложение завершает работу). Если я вставлю код запуска главной формы сразу после запуска логина, то она и запустится сразу же. Может можно и не приостанавливать главный поток, я в джаве пока еще новичок, так что жду советовв и предложений
|
|||
|
||||
| Foo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 20.10.2006 Репутация: 2 Всего: 3 |
чтото ничего непонял, если я правильно понял, то ты можеш содвть например JDialog и показать на нем панель с едитбоксами например для логина, и если пользователь ввел правильные данный показать на этом JDialog саму прогу, а если неправильно сделай System.exit(0). Или можно убивать диалог логина lognDialog.dispose(); и показывать другой, или не опказывать, или ещё какнить сделать, способов много.
--------------------
qip |
|||
|
||||
| blur |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 9.11.2004 Репутация: нет Всего: 1 |
Я не использую JDialog. Только JFrame и хотелось бы них и сделать.
|
|||
|
||||
| BlackStar |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 13.12.2006 Репутация: 2 Всего: 5 |
Не понял почему должна сразу же запуститься форма? |
|||
|
||||
| blur |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 9.11.2004 Репутация: нет Всего: 1 |
Мне же нужно, чтобы MainWindow window = new MainWindow(); исполнился только ПОСЛЕ закрытия формы с логином. |
||||||
|
|||||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Помести код:
В обработчик события закрытия MyFrame. Т.е. создавай новый MainWindow после того как будет закрыто MyFrame, и убедишься, что все данные были введены верно. -------------------- 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. |
|||
|
||||
| blur |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 9.11.2004 Репутация: нет Всего: 1 |
Повторюсь, вопрос был как остановить выполнение потока до закрытия формы. Если это сделать невозможно, то так и скажите. |
||||
|
|||||
| powerOn |
|
||||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 31 Всего: 159 |
Это сделать можно, но как тебе многие намекают, это не лучшее решение. В идеале нужно использовать JDialog или делегировать создание MainWindow MyFrame-у, но раз уж ты этого делать не хочешь, то тебе придется извращаться 1) Останавливать поток циклом с задержкой, после того как отобразишь фрейм:
2) Нужно сделать так, что бы при закрытии фрейма флаг flag, принял значение false. А для этого, фрейм должен иметь ссылку на объект, из которого он был запущен. А этот объект в свою очередь должен предоставить метод для изменения значения флага. Фрейм сможет им воспользоваться прямо перед своим закрытием. Опять же, лучше сделать как советовали постами выше. |
||||
|
|||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
ОК, это твои собственные грабли Многопоточное программирование -------------------- 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, jk1. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |