# [GWT] Suche Farbklasse Color



## kirdie (19. Jan 2011)

Da Google Web Toolkit die Klasse java.awt.Color nicht emuliert, wollte ich fragen, welche Klasse man dann in GWT benutzen kann?
Sie muss eigentlich nicht viel können, nur mit r,g und b Werten initialisiert werden können und ganz toll wäre es, wenn sie noch ein paar HTML-Hilfsmethoden hätte.
Habe mir jetzt erstmal selbst eine geschrieben (siehe unten) aber ich benutze lieber etablierte APIs als das Rad neu zu erfinden und damit später Kompatibilitätsprobleme zu haben.


```
public class Color
{
	final int r,g,b;
	public static final Color RED = new Color(255,0,0);
	public static final Color GREEN = new Color(0,255,0);
	public static final Color BLUE = new Color(0,0,255);

	
	/** Java hat ja leider kein unsigned byte*/
	public Color(int r, int g, int b)
	{
		if((r|g|b)>255||((r|g|b))<0) throw new IllegalArgumentException("r, g and b must be unsigned byte values (between 0 and 255 inclusive).");
		this.r = r;
		this.g = g;
		this.b = b;
	}

	public static Color interpolate(Color color1,Color color2, double x)
	{
		if(x<0||x>1) throw new IllegalArgumentException("x must lie in [0,1]");
		return new Color((int)(color1.r*(1-x)+color2.r*x),(int)(color1.g*(1-x)+color2.g*x),(int)(color1.b*(1-x)+color2.b*x));
	}
	
	private String toDoubleDigitHex(int i)
	{
		return (i<15?"0":"")+toDoubleDigitHex(i);
	}
	
	public String toHTMLString()
	{
		return toDoubleDigitHex(r)+toDoubleDigitHex(g)+toDoubleDigitHex(b);
	}		
}
```


----------



## MySelV (19. Jan 2011)

Hi,

bist du sicher, dass du das benötigst? Im Normalfall werden styles doch per .css für die Gwt sites gesetzt - also auch die Farben. Ich glaube aus diesem Grund macht eine Emulation wenig Sinn. Scheinbar hat es trotzdem mal jemand gemacht: GWT Widget Library

Grüße


----------



## Heady86 (20. Jan 2011)

Hi,

würd dir auch zu der CSS Lösung raten. Für die GWT Widgets gibts dann z.B. die Methode setStyleName("...") in der du einfach die jeweiligen CSS Klassennamen übergibst der für das Widget aus der CSS Datei gezogen und verwendet werden soll.


Grüße


----------



## kirdie (20. Jan 2011)

Die Farbe ist ja nicht im vorraus bekannt sondern wird dynamisch per Interpolation berechnet zwischen zwei Farbwerten mittels eines double-Wertes zwischen 0 und 1 (0 - Farbe 1, 1 - Farbe 2, dazwischen - interpolierte Farbe), deshalb kann ich das nicht per css machen.


----------

