Java: cast de couleur
Résolu
velociraptor
-
velociraptor -
velociraptor -
Bonjour,
J'ai un problème que vous pourrez sans doute m'aider à régler:
voilà, j'ai un cast à faire mais nulle part je ne trouve d'aide la dessus...
je voudrais transformer une String en Color
j'ai essayé ça:
Color back = (Color)(tokenizer.nextToken());
avec tokenizer.nextToken() renvoyant java.awt.Color[r=0,g=0,b=255] mais ça ne marche pas...
en espèrant que vous pourrez m'aide, je vous remercie d'avance
Alexandre
J'ai un problème que vous pourrez sans doute m'aider à régler:
voilà, j'ai un cast à faire mais nulle part je ne trouve d'aide la dessus...
je voudrais transformer une String en Color
j'ai essayé ça:
Color back = (Color)(tokenizer.nextToken());
avec tokenizer.nextToken() renvoyant java.awt.Color[r=0,g=0,b=255] mais ça ne marche pas...
en espèrant que vous pourrez m'aide, je vous remercie d'avance
Alexandre
1 réponse
-
Salut,
ce n'est pas possible, caster un objet c'est juste faire ressortir des qualité qu'il à déjà et une String et Color sont 2 familles différentes, on ne cast que les classes déscendant de la super classe pour les faire remonteer vers elle je crois... par contre j'ai fait ceci :public class testColor extends Color{ public testColor() { // nécessaire super(0,0,0); } public static Color decodeColor(String mot) { try { mot = mot.substring(mot.indexOf("[") + 1, mot.indexOf("]")); mot = mot.replaceAll("r=", ""); mot = mot.replaceAll("g=", ""); mot = mot.replaceAll("b=", ""); StringTokenizer st = new StringTokenizer(mot, ","); int fr = Integer.parseInt(st.nextToken()); int fg = Integer.parseInt(st.nextToken()); int fb = Integer.parseInt(st.nextToken()); Color c = new Color(fr, fg, fb); return c; }catch(Exception e) { /* afficher mess err IllegalArgumentException entre autre, sans oublier le compte de mots */ } return null; }
j'appelle cette fonction decodeColor pour faire le lien avec static decode(String str) de la classe Color, si tu avais des couleurs simple en paramètres (mot = "blue" ) çà simplifierai avec :
Color.decode(mot) renvoie l'objet Color correspondant ...
ici, testColor.decodeColor(mot) renvoie de même un objet Color mais attention le mot doit être formaté comme dans l'exemple où bien faisles modifs, enfin fait à ta sauce ...
A+