[GWT] Suche Farbklasse Color

kirdie

Bekanntes Mitglied
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.

Java:
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

Aktives Mitglied
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

Bekanntes Mitglied
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

Bekanntes Mitglied
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.
 

Ähnliche Java Themen


Oben