Java: cast de couleur

Résolu
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

1 réponse

  1. jcodeunpeu Messages postés 308 Date d'inscription   Statut Membre 6
     
    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+
    1
    1. velociraptor
       
      Super!

      pile poil ce que je cherchais! Merci beaucoup!

      En plus maintenant je connais la régle de cast grâce à toi! :-)

      encore merci

      a+

      Alexandre
      0