# Java > Interfaces Graphiques en Java > AWT/Swing >  Mthode pour changer la couleur d'un objet dynamiquement

## Kalmos2

Bonjour, je suis en train de me coder une petite application pour un cours et je me demandais comment je pouvais changer intelligemment la couleur de cercle que je cre au fil du temps, un peu comme dans cette application : http://apricot.polyu.edu.hk/~lam/dla/dla.html (quand on click sur grow)


Le constructeur de mes rond : 



```

```

Ma premire ide tait de passer directement par 



```

```

max tant le nombre de rond dans mon dessin.

Histoire d'avoir ici par exemple un dgrad de rouge (noir au rouge)

Mais la je ne fais que du dgrad, l'ide tant de pouvoir le faire en passant par plusieurs couleurs (que a soit joli  ::):  comme dans l'applet mis au dessus)

Je pense aussi  l'ide de mettre les couleurs dans un tableau et ensuite de parcourir les tableaux mais je demandais si y avait pas un peu plus pratique ou "smart".

Voil, je vous remercie d'avance pour vos rponses. (Topic pas trs important mais a me tracasse quand mme ^^)

----------


## slim_java

Bonjour,




> Je pense aussi  l'ide de mettre les couleurs dans un tableau et ensuite de parcourir les tableaux mais je demandais si y avait pas un peu plus pratique ou "smart".


Oui, tu peux utiliser un tableau mais le nombre de couleur sera un peu restreint, tu peux donc procder de cette  faon:


```

```

----------


## math_lab

La technique du tableau est tout a fait acceptable. Mais si vraiment tu l'aimes pas et que tu veux un degrad avec plus de couleurs, je te conseille de passer dans l'espace couleurs HSV et de jouer sur le H comme tu jouais sur le R. Apres, tu convertis ta couleur HSV en RGB et ca devrait te faire un arc en ciel.

----------


## sinok

En trichant.

C'est  dire en ayant un bon vieux RadialGradientPaint (pas si vieux que a, a date de java6) faisant la taille de ton composant, de le dessiner en fond (via un rectangle quelconque). Attention, les paint ne sont utilisables qu'avec les Graphics2D en utilisant la mthode setPaint. 
Puis en utilisant les modes de composition de java (via les diverses options de la classe AlphaComposite) pour que le gradient ne soit affich que dans les ronds que tu dessineras.

Pour en savoir plus sur les modes de composition disponibles dans java: http://download.oracle.com/javase/tu...mpositing.html


De fait tu n'auras pas  te soucier de la couleur de chaque cercle. juste de dessiner les cercles  :;): .

----------

