# Color-Objekt aus Hex-Farbcode erzeugen



## theomega (10. Jul 2004)

Hallo Leute,
kleine Frage,
ich habe den Hex-Farbcode einer Farbe in einem String (z.b. "FF00FF"). jetzt würde ich anhand von diesen Werten gern ein Color-Objekt erstellen. Java bietet mir dafür aber nicht die passenden Funktionen.
Wer hätte mir ein Codeschnipsel das das tut?

Danke schön
TO

_Editiert von P3AC3MAK3R: Titel präzisiert_


----------



## Isaac (10. Jul 2004)

Sicher bietet dir da Java was

Integer.parseInt(String s, int radix) 

und 

Color(int rgb)


----------



## nero (10. Jul 2004)

du musst den String in einen Integer umwandeln, und dann erzeugst du halt mit diesem Wert ein Color-Objekt

entschuldigung als ich begonnen hab zu schreiben hat Isaac nocht nicht geantwortet


----------



## Roar (10. Jul 2004)

Color.decode(String s) sollte es tun:



			
				Java API hat gesagt.:
			
		

> Converts a String to an integer and returns the specified opaque Color. This method handles string formats that are used to represent octal and hexidecimal numbers.



edit: ui gleich 2 vor mir :-/ ich glaube meines sollte am einfachsten gehen


----------



## Isaac (10. Jul 2004)

Jo, sollte es. Btw, die Methode kannte ich auch noch nicht  :lol:

Was mich iritiert ist, woran erkennt decode den radix?


----------



## Roar (10. Jul 2004)

```
public static Color decode(String nm) throws NumberFormatException {
	Integer intval = Integer.decode(nm);
	int i = intval.intValue();
	return new Color((i >> 16) & 0xFF, (i >> 8) & 0xFF, i & 0xFF);
    }
```


----------



## nero (10. Jul 2004)

vielleicht an der Länge????


----------



## Isaac (10. Jul 2004)

Das wird so nicht funktionieren Roar, ich hab auch gerade mal reingeschaut


Decodes a String into an Integer. Accepts decimal, hexadecimal, and octal numbers given by the following grammar: 
DecodableString: 
Signopt DecimalNumeral 
Signopt 0x HexDigits 
Signopt 0X HexDigits 
Signopt # HexDigits 
Signopt 0 OctalDigits 

Sign: 
- 


Wenn man das benutzen will muss man den String vorher noch auf 0x<String> umbauen.


----------



## Roar (10. Jul 2004)

doch das geht so:


```
System.out.println("color: "+ Color.decode("#FFFFFF"));
// ausgabe: color: java.awt.Color[r=255,g=255,b=255]
```


----------



## Isaac (10. Jul 2004)

Ja steht ja da, das # einer der HEX Anzeiger ist. Er hat aber Strings der Form  "FF00FF". Er muss sich also erst einen zusammenbauen der einen der 3 möglichen HEX Anzeiger beinhaltet. ALso

"0x" +  "FF00FF"
"0X" +  "FF00FF"
"#"  +  "FF00FF"


----------



## Guest (10. Jul 2004)

danke an alle, das decode hat geholfen!


----------



## theomega (10. Jul 2004)

^^^^
war ich, nicht eingeloggt!


----------

