Graphics.setColor

программирование java графика

private void flover(int timeA) {

g2d.setColor(Color.GREEN);
g2d.setStroke(new BasicStroke(6));

for (int i = 0; i < d.getWidth(); i+=100) {
int lng=(int)d.getHeight()-(80);
g2d.drawLine(i, (int)d.getHeight(), i,lng );

g2d.setColor(Color.orange);
g2d.fillArc(i-20, lng-60, 40, 40, 100+timeA, 340-timeA*2);
}
}
меняю цвет для бутончика на жёлтый , но меняется и цвет стебля на жёлтый , в чем прикол ?
типа анимация =)

Примечание:
все в одном потоке . я много раз меняю в потоке цвет отрисовки правда раз за весь метод , и только сдесь он заменяет предыдущий . все цвета остаются без изменений . все используют одну и туже ссылку на обьект Graphics2d (g2d)

Примечание:
Но когда я создал новую ссылку на тот же обьект (getGraphics или новый обьект?) , но факт то что все рисуется там же , цвет поменялся как нужно . Сам же и решил проблему .
Только не понятно все равно. Я задал цет отрисовал линию , потом поменял цвет и нарисовал полукруг , но цвет также поменялся и для прошлого элемента .

Примечание:
насчет отрисовывать в новом потоке это хороший совет , а то пока анимация не кончится закрыть окно не могу =))
Ответы:
Рискну предположить что к моменту прорисовки реальный цвет Graphics уже оличается. То есть ты выполняешь действия не в том же потоке, что и отрисовка.


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.