Bonjour,
dans un programme je recupere une valeur d'un JColorhooser sous cette form,et j'aimerai transformer sous la forme d'une couleur typeCode:java.awt.Color[r=204,g=255,b=51]
Je ne trouve pas de méthode.Code:#000000
Merci d'avance
Version imprimable
Bonjour,
dans un programme je recupere une valeur d'un JColorhooser sous cette form,et j'aimerai transformer sous la forme d'une couleur typeCode:java.awt.Color[r=204,g=255,b=51]
Je ne trouve pas de méthode.Code:#000000
Merci d'avance
Essaye ça (non testé) :
Code:
1
2
3
4
5
6 String red = Integer.toString(myColor.getRed(), 16) String green = Integer.toString(myColor.getGreen(), 16) String blue = Integer.toString(myColor.getBlue(), 16) DecimalFormat df = new DecimalFormat("##"); String color = "#" + df.format(red) + df.format(green ) + df.format(blue); System.out.println(color);
Il te faut juste une methode pour convertir un int en hexa.
Sa a pas marche :Citation:
Envoyé par le y@m's
Exception occurred during event dispatching:
java.lang.IllegalArgumentException: Cannot format given Object as a Number
Tu en connait une?Citation:
Envoyé par MeDioN
Et puis je recupere 3 nombres comment les changer en hexa?
Transforme un int en un nombre hexaCode:Integer.toHexString(int nb)
Tu l'appliques à tes 3 nombres des teintes R G B puis tu les concat
J'ai fait :Et cela me retourne un chiffre a 4 ou 5 lignes au lieu de 6!Code:
1
2
3 System.out.println(Integer.toHexString(color.getRed())+ Integer.toHexString(color.getGreen())+ Integer.toHexString(color.getBlue()));
En fait sa me retourner desfois 6 chiffre et desfois seulement 5??
Ba si ta valeur n'a qu'un seul chiffre ça va te retourner un seul chiffre...
tu fais
Et t'en auras toujours 6 -_-Code:
1
2
3 if( taString.length ==1){ s = "0" +s; }
:oops: désolé je me suis un peu précipité, la methode format de la classe DecimalFormat attend un nombre en parametre et pas un String.Citation:
Envoyé par daninho
Ok merci sa marche .