Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: GUI и Java FX приложения > Взаимодействие потоков GUI |
Автор: elnino 27.4.2005, 23:47 |
Объясните, пожалуйста, как взаимодействуют между собой потоки GUI? Я слышал по крайней мере о трех: главный поток программы, поток, обрабатывающий события от компонент и поток, работающий с графикой. К примеру есть JFrame, содержащий JPanel с картинкой и кнопку JButton. По нажатию на кнопку необходимо перерисовать картинку. Пример примитивный, меня интересует не код, а что при этом происходит на уровне этих самых потоков. Есть ли там очереди? Если да, то сколько их и что в них помещается? Можно ли считать, что все события от всевозможных листенеров выполняются последовательно в рамках одного окна независимо от глубины вложений компонент друг в друга и их вида, если все они, к примеру, Swing? Могут ли вызовы paintComponent() для одного и того же компонента перекрывать друг друга? В C++, если я не ошибаюсь, нужно самому создавать цикл обработки сообщений окна. Конечно, занятие не из приятных, но зато есть гарантия, что в каждый момент времени обрабатывается одно сообщение. Как с этим в Java? Объясню ситуацию: есть JPanel с картинкой, картинка формируется динамически, в общем формируется довольно долго. Эту долгую работу я провожу в paintComponent(). Инициировать перерисовку могут несколько swing-компонент, мышь и еще отдельно созданный тред. Все это нужно синхронизировать. Буду благодарен за ссылку. Спасибо ![]() |
Автор: batigoal 28.4.2005, 09:37 | ||
Да. Почитай, тут немного говорили о смежной теме: http://forum.vingrad.ru/index.php?showtopic=50027 |
Автор: elnino 7.5.2005, 09:48 | ||
Нашел! ![]()
Подробности здесь => http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html |