![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
SID_M |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 11.2.2005 Где: Россия, г. Москва Репутация: нет Всего: нет |
Есть ли механизм получения данных от немодальной формы, т.е. от JFrame, которая создана в другом Thread.
Из главного окна я вызываю много новых, но нужно получить результаты их работы назад. Причем каждое новое окно создается в новом потоке. Как мне быть?! ![]() Желательно простенький пример. ![]() --------------------
Если тебе не дано летать, то хотя бы ползай с гордо поднятой головой. |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Определи методы с помощью которых твои компоненты будут возвращать результаты и вызывай их.
Например можно задать такой интерфейс:
затем имплементируешь его своими фреймами. Когда хочешь получить данные, проверяешь что ввод данных закончен (isEditingComplete()) и если да, то получаешь их (getData()). -------------------- 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. |
|||
|
||||
SID_M |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 11.2.2005 Где: Россия, г. Москва Репутация: нет Всего: нет |
Красиво. Вото только один вопрос в данном случае <T> - это по аналогии с С++ любой тип, который туда подставишь, правильно?
А вообще красиво... ![]() А как быть с потоками? Новые окна, то создаются в разных потоках с основным... Мож я туплю правда. Это сообщение отредактировал(а) SID_M - 12.3.2006, 13:46 --------------------
Если тебе не дано летать, то хотя бы ползай с гордо поднятой головой. |
|||
|
||||
LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Да, это generics, доступно начиная с JDK 1.5. Когда бедешь имплементировать пишешь так:
-------------------- 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. |
||||
|
|||||
SID_M |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 11.2.2005 Где: Россия, г. Москва Репутация: нет Всего: нет |
А как быть с потоками? Новые окна, то создаются в разных потоках с основным...
Мож я туплю правда. --------------------
Если тебе не дано летать, то хотя бы ползай с гордо поднятой головой. |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 31 Всего: 159 |
Предположим есть у тебя главная форма, которая просто в своем заголовке отображает число, и больше ничего....
И есть на главной форме кнопка, которая открывает в новом потоке другую новую форму с полем ввода, куда ты должен ввести число. Введешь число ты в появившуюся форму, закроешь её, и должно это число появиться в заголовке главной формы. Это простейший пример передачи данных от одной формы к другой. Так вот, чтобы это реализовать нужно сделать так, чтобы форма для ввода числа знала о существовании главной формы и в момент своего закрытия вызывала метод главной формы для установки числа. Передавай ссылку на главную форму дочерним окнам, и пусть дочернии окна вызавают методы главно формы. Только не забудь о синхронизиронизации. Это сообщение отредактировал(а) MoonCat - 12.3.2006, 15:18 |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 7 Всего: 151 |
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
DarkDS |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 748 Регистрация: 6.5.2003 Где: Таллинн, Эстония Репутация: 4 Всего: 16 |
Тут есть 2 варианта. 1. Создать евент листенер со определенным эвентом и главное окно наследовать от него. При окончании работы в немодальной форме посылается эвент о том, что работа закончена и результат работы. По этому варианту пример приведу попозже, так как под рукой исходников нет вообще, а на память всего не напишу ![]() 2. Менее красивый: У главной формы определить метод, через который можно передавать данные. При завершении работы через ивнок лайтер вызвать у формы метод. То есть примерно так:
|
||||
|
|||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 31 Всего: 159 |
![]() о синхронизации конечно речь идет... |
|||
|
||||
SID_M |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 11.2.2005 Где: Россия, г. Москва Репутация: нет Всего: нет |
Спасибо!!! Очень благодарен всем. Проблема решена...
--------------------
Если тебе не дано летать, то хотя бы ползай с гордо поднятой головой. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |