|
|
|
|
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
Salut,
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+ le réel n'est jamais ce que l'on croit, mais ce qu'on n'aurait dû penser.[...] |