public static Vector<Classe> nommeEtColorie(Vector<Classe> classes, ECM ecm, int nbClasses) {
		double k = ecm.getk();
		Vector<Color> couleurs = new Vector<Color>();
		int[][] S = ecm.getS();
		double r = 0, g = 0, b = 0;
		String nom = "";
		boolean first = true;
		double n; //Cast pour eviter les successions d'arrondis;
		Classe classe;
		
		for(int i = 0; i < k; i++){
			if(i >= classesParDefaut.size()) classes.add(new Classe(i, new SymboleCroix()));
			n=0;
			r = 0;
			g = 0;
			b = 0;
			couleurs.clear();
			first = true;
			nom = "";
			classe = classes.elementAt(i);
			for(int j = 0; j < nbClasses; j++)
				{
				if(S[j][i] != 0){
					couleurs.add(classes.elementAt((int)Math.pow(2,j)).couleur);
					if(first) first = false;
					else nom += ", ";
					nom += "w"+ (j+1);
					classe.nom = nom;
					n++;
				}
			}
			
			if(n != 0 && n > 1){
				for(int j = 0; j < n; j++){
					r += (double)couleurs.elementAt(j).getRed()/n;
					g += (double)couleurs.elementAt(j).getGreen()/n;
					b += (double)couleurs.elementAt(j).getBlue()/n;
				}
				classe.couleur = new Color((int)r,(int)g,(int)b);
				
			} else{
				classe.composee = true;
				classe.estColoriee = true;
				classe.envDessinee = true;
				if(i >= classesParDefaut.size()) classe.couleur = new Color((int)(255*Math.random()),(int)(255*Math.random()),(int)(255*Math.random()));
			}
		}
		return classes;
	}