![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Prol |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 11.1.2008 Где: Кыев, Украина Репутация: нет Всего: нет |
Этот апплет рисует красный овал там, где нажимается мышка.
Но мне непонятно, кто и где закрашивает старый овал в цвет фона? Я не люблю, когда программы делают то, чего я их не прошу. В тексте апплета есть как рисуется новый овал, но нету как затирается старый овал :о)
|
|||
|
||||
| Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 4 Всего: 40 |
а это по твоему что?! |
|||
|
||||
| Prol |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 11.1.2008 Где: Кыев, Украина Репутация: нет Всего: нет |
Если это закомментировать, то всё равно старый овал кто-то затирает :о) |
||||
|
|||||
| Metal_Heart |
|
|||
|
а почему бы и нет? ![]() ![]() Профиль Группа: Участник Сообщений: 728 Регистрация: 31.3.2005 Где: Москва Репутация: 1 Всего: 12 |
Prol,
Вот ответ на твой вопрос:
Ты же не хранишь ранее нарисованные фигуры? Нет? А кто это должен делать? Вот они и не стали этого реализовывать -------------------- не стыдно учиться, а стыдно не учиться |
|||
|
||||
| Prol |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 11.1.2008 Где: Кыев, Украина Репутация: нет Всего: нет |
Нипанятнаааа... Как сделать так, чтобы "кто-то" не затирал старый овал, если его об этом не прошу? |
||||
|
|||||
| Metal_Heart |
|
|||
|
а почему бы и нет? ![]() ![]() Профиль Группа: Участник Сообщений: 728 Регистрация: 31.3.2005 Где: Москва Репутация: 1 Всего: 12 |
Prol, ну пойми ты наконец, что пока ты САМ не позаботишься о сохранении своих данный их никто хранит не будет!!! А чтоб тебе сохранить свои овалы - создаешь промежуточный буффер, типа Image - кажется. Рисуешь в нем, затем при repaint() выводишь на экран. У этого метода есть ещё несколько побочных плюсов ... -------------------- не стыдно учиться, а стыдно не учиться |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 7 Всего: 151 |
Prol, при reapint происходит полная перерисовка. Если тебе нужно, чтобы при этом рисовались ещё и старые изображения, тебе придется самому об этом позаботиться.
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| Prol |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 11.1.2008 Где: Кыев, Украина Репутация: нет Всего: нет |
Извините, я новик в Java. По опыту я знаю, что если я нарисовал один пиксел на экране, то он будет нарисованный, пока я сам его оттуда не сотру другим пикселом. Кто стирает мой старый овал без спросу? Как сказать ему, чтобы он не стирал мой старый овал? Добавлено через 2 минуты и 9 секунд
Что значит "полная перерисовка"? Перерисовка чего? Всего окна или только овала? Извините, я не могу уловить логику Java... |
||||
|
|||||
| Metal_Heart |
|
|||
|
а почему бы и нет? ![]() ![]() Профиль Группа: Участник Сообщений: 728 Регистрация: 31.3.2005 Где: Москва Репутация: 1 Всего: 12 |
перерисовка того компонента, на ком вызван repaint(). Сходи в раздел по книгам (ссылку не помню) и выбери себе достойную книгу. Начинать лучше всего с внимательного чтения документации, а не валить вину на "каких-то" программистов. -------------------- не стыдно учиться, а стыдно не учиться |
|||
|
||||
| Prol |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 11.1.2008 Где: Кыев, Украина Репутация: нет Всего: нет |
Я не нашёл исходного кода метода repaint() |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 7 Всего: 151 |
Метод repaint() стирает изображение компонента и вызывает paint(), который выводит новый овал. В твоем коде он не объявлен, и наследуется из класса Applet. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| Prol |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 11.1.2008 Где: Кыев, Украина Репутация: нет Всего: нет |
Насколько я понимаю, метод repaint() в исходном тексте вызываетcя для объекта g. Единственное место, где я вижу рисование овала - это метод g.paint() Он рисует новый овал. То есть по умолчанию метод g.repaint() затирает любое изображение перерисовкой фона, который фон указан для объекта g ? Добавлено через 10 минут и 25 секунд Метод paint() для объекта g мною переопределён, если вы прочитаете исходник. В моём методе нету затирания старого овала. Кто затирает старый овал?
|
||||
|
|||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 7 Всего: 151 |
Prol, прочитай ещё раз моё сообщение.
Добавлено через 1 минуту и 37 секунд Для апплета ClickMe, если быть точным. g - это просто графический контекст. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| Prol |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 11.1.2008 Где: Кыев, Украина Репутация: нет Всего: нет |
g - это объект класса Graphics, как я понимаю из описания. А repaint() - это метод объекта ClickMe класса Applet. Я правильно понимаю? Вопрос остаётся открытым, какой метод какого объекта меняет цвет на том месте, где был нарисован старый овал? Поскольку метод ClickMe.paint() мною переопределён, то видимо у ClickMe, а точнее у класса Applet, от которого ClickMe унаследован, есть какой-то невидимый метод, который затирает старый овал? |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 7 Всего: 151 |
Prol, повторяю в третий раз - это делает метод repaint().
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
![]()
|
| Правила форума "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. |