![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
elnino |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 27.12.2004 Где: Одесса, Украина Репутация: 1 Всего: 1 |
Объясните, пожалуйста, как взаимодействуют между собой потоки GUI? Я слышал по крайней мере о трех: главный поток программы, поток, обрабатывающий события от компонент и поток, работающий с графикой.
К примеру есть JFrame, содержащий JPanel с картинкой и кнопку JButton. По нажатию на кнопку необходимо перерисовать картинку. Пример примитивный, меня интересует не код, а что при этом происходит на уровне этих самых потоков. Есть ли там очереди? Если да, то сколько их и что в них помещается? Можно ли считать, что все события от всевозможных листенеров выполняются последовательно в рамках одного окна независимо от глубины вложений компонент друг в друга и их вида, если все они, к примеру, Swing? Могут ли вызовы paintComponent() для одного и того же компонента перекрывать друг друга? В C++, если я не ошибаюсь, нужно самому создавать цикл обработки сообщений окна. Конечно, занятие не из приятных, но зато есть гарантия, что в каждый момент времени обрабатывается одно сообщение. Как с этим в Java? Объясню ситуацию: есть JPanel с картинкой, картинка формируется динамически, в общем формируется довольно долго. Эту долгую работу я провожу в paintComponent(). Инициировать перерисовку могут несколько swing-компонент, мышь и еще отдельно созданный тред. Все это нужно синхронизировать. Буду благодарен за ссылку. Спасибо ![]() |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 7 Всего: 151 |
Да. Почитай, тут немного говорили о смежной теме: http://forum.vingrad.ru/index.php?showtopic=50027 -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
elnino |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 27.12.2004 Где: Одесса, Украина Репутация: 1 Всего: 1 |
Нашел!
![]()
Подробности здесь => http://java.sun.com/docs/books/tutorial/ui...sc/threads.html |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |