Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java ME (J2ME) > repaint |
Автор: joker332 21.10.2008, 22:44 | ||
написал простенькую програму.Но почему то не хочет работать repaint().или я его не правильно использую??? Я хочу что бы после нажатия на 1 выполнилось действие вот такое gg.fillRect(height/5,width/2+8,height/6*2,width/7); Но екран почемуто не перерисовывается??
Заранее спасибо!! |
Автор: Dummy 21.10.2008, 23:26 |
Да, код не совсем корректный:
|
Автор: joker332 22.10.2008, 00:30 | ||
А где писать изменение екрана тоисть
???????? |
Автор: Dummy 22.10.2008, 08:37 | ||
А все в paint(). Добавить в этот метод необходимую логику таким образом, чтобы в нужных случаях отрисовывалось вот это самое
Еще один вариант - можно использовать GameCanvas. Тогда можно в любом момент у него получить объект Graphics, вызвав getGraphics(), нарисовать туда что угодно, а потом уже вызвать repaint(). |
Автор: joker332 22.10.2008, 11:25 |
А можеш показать как это делать???я не совсем понемаю Заранее благодарен |
Автор: W0LF 22.10.2008, 12:48 |
ну, repaint() это примерно как и gc() он не обязательно сработает. Где-то это уже здесь обсуждлось. serviceRepaint() если не ошибаюсь, этот обязательно переристует joker332, а почему ты не хочешь заглянуть в WTK**\apps\games например? там есть примеры и с Canvas и с GameCanvas |
Автор: Dummy 22.10.2008, 13:00 | ||
Ну, если repaint()'ы не прут каждые 5 микросекунд и текущий Displayable не меняется, то repaint() все же должен отработать. Другое дело, с какой задержкой. В данном случае repaint() можно считать равносильным вызову paint(). joker332, вот тебе ужас, накатанный за 5 минут. Делать красиво лень и некогда:
Смысл в том, что ты рисуешь разные вещи во внеэкранном буфере (GameCanvas.getGraphics()) в зависимости от состояния приложения - т. е., например, если у тебя выделен 1-й элемент списка, ты рисуешь выделение на первом элементе, если 2-й - на втором и т. п. А когда необходимо выплеснуть это все на дисплей, зовешь GameCanvas.repaint() |
Автор: Dummy 22.10.2008, 13:54 |
Вроде как и можно, но мне предпочтительней кажется всю отрисовку на экране делать в paint() - она в этом случае сериализуется с остальными событиями GUI. По умолчанию GameCanvas.paint() делает именно flushGraphics() на весь экран. |