![]() |
Простой апплет на Java
По сути в объекте должно быть несколько объектов-кругов, которые будут двигаться до стенки и отскакивать, каждый в своем потоке.
Проблема в том, что не знают как перерисовавыть их в апплете, как сделано - они перирисовыются только при изменинии размеров апплетов. И еще хотел отлавлитвать событие о изменении размеров окна и обновлять предполагамые размеры для кругов, но тоже не пашет. Можно сказать, что первая прога на яве, так что код далек от совершенства. PHP код:
PHP код:
|
Ты не прав в следующем: отрисовка идет в методе paint этот метод вызывается только и только тогда когда было известно, что состояние компонента обновилось и его надо перерисовать.
Соответственно у тебя и получается, что он перерисовывается только когда ты изменяешь размер. Самое простое изменение, которое можно сюда внести - это с определенной переодичностью дергать метод repaint() который будет оповещать о том, что окно апплета надо перерисовать. Вообще есть немного более красивый вариант - у тебя объекты Circle в любом случае наследуются от Component, поэтому не риуй руками их каждый раз и просто добавляй их внутрь окна апплета (правдо желательно все же использовать lightweight компоненты в качестве базового класса - JComponent) предварительно у апплета убери лэйаут setLayout(null) и просто меняй координаты объектов Circle, помещенных в окно апплета. Таким образом никакого кода дополнительно отвечающего за перерисовку не потребуется. Также поток на каждый объект - это расточительство используй один поток для обработки всех объектов. Вообще в пятой яве появились новые средства для работы с потоками - можешь ознакомиться с пакетом java.util.concurrent.*. Где-то так... :) |
| Часовой пояс GMT +4, время: 16:33. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.