# Hilfe bei der Methode COLOR (Java)



## Andre1978 (11. Dez 2008)

Hi Leute, ich brauch wohl Eure Hilfe im Punkto COLOR in Java.

Hier ein kleiner Auszug:


```
String b = "black";
g.setColor(Color.b);
```

Warum geht das nicht? Oder wie kann ich das lösen, dass eine Variable eine Farbe ersetzen kann?


Vielen Dank für Hilfe...

[/code]


----------



## diel2001 (11. Dez 2008)

Hallo

Color hat statische Variablen

z.B Color.BLUE

Color Java Api


----------



## Andre1978 (11. Dez 2008)

Ich habe die Farben "namentlich" in einer txt-Datei gespeichert, die ich von aussen bei Bedarf ändern möchte, ohne in den Code reinzumüssen....  Bitte um Hilfe, wie ich das regeln kann... Danke!


----------



## Gelöschtes Mitglied 9001 (11. Dez 2008)

Im einfachsten Fall:

```
if (colorname.equals("black")) {
   g.setColor(Color.BLACK);
} else
if (colorname.equals("red")) {
    g.setColor(Color.RED);
} else

  ...
```

Ansonsten eine Map anlegen, in der alle von Dir benötigten Farben angelegt mit ihren Namen als Schlüssel drin sind.


----------



## Taggert (11. Dez 2008)

Hallo,

das mit der txt Datei ist noch so schön, denn dann musst Du ja die Datei erst auslesen, die dort gespeicherten Werte in ein COLOR Objekt verwandeln und diese dann zuweisen.  Soweit ich das gerade verstanden habe, hast Du nur eine txt Datei in  dem die Werte stehen, aber Du diese nie zuweist.  Du hoffst einfach nur, dass Dein Java Programm di Datei ausliest und die Werte dann automatisch setzt.  Ich glaube, wenn das die Computer alle könnten, dann bräuchte man keine Softwareentwickler mehr.

Vielleicht hab ich Dich auch einfach falsch verstanden.  Wenn dem so ist, dann einfach mal kurz posten.


----------



## Taggert (11. Dez 2008)

Wenn Du es unbedingt über eine Datei machen willst, dann schau Dir mal die property Files in Java an,


----------



## Andre1978 (11. Dez 2008)

Die Textdatei lese ich schon aus:


```
File f = new File(pfad+"config.txt");
			FileInputStream fis = new FileInputStream(f);
			InputStreamReader isr = new InputStreamReader(fis);
			BufferedReader br = new BufferedReader(isr);
			int zeile = 1;   // Auszulesene Zeile bestimmen!
			for (int i = 0; i < zeile; i++){
				br.readLine();
			}
			String[] spalten = br.readLine().split(",");
			String s1 = (spalten[0]);    // s1 = Farbe!
```


----------



## Oli (11. Dez 2008)

Hallo,

müssen denn in der Textdatei die Namen der Farben umbedingt in Klartext stehen?
Wenn du es regeln könntest, dass dort die RGB oder Hexadezimalwerte stehen, dann kannst du das einfach parsen und mit

new Color(Integer.parseInt(r), Integer.parseInt(g), Integer.parseInt(b)) 

die gewünschte Farbe anzeigen lassen.

Grüße Oli


----------



## Andre1978 (11. Dez 2008)

Vielen Dank für den heissen Ansatz! Werde es gleich mal probieren. Problem ist nur:

Die Menschen, die die Farben in der Textdatei ändern sollen, wissen nichts über z.B. 255,100,255 

Schwierige Lage ;-)

Gruß Andre1978


----------



## Oli (11. Dez 2008)

Hi,

nun, das verstehe ich, deswegen war es ja nur ein Vorschlag. Wenn da wirklich Klartext rein soll sehe ich kaum eine andere Möglichkeit als die, die Raimund vorgeschlagen hat.

Eine andere Möglichkeit wäre halt, in der Textdatei alle möglichen Farben, die du verwenden möchtest, im Klartext und in RGB Code reizuklappern. Der Benutzer kann dann über ein Flag (J/N) auswählen, welche Farben im Programm verwendet werden sollen.

Grüße Oli


Edit: Wenn da dann ein User davorzsitzt, der mit RGB - Werten nicht umgehen kann dann musst du damit rechnen, dass es User gibt die violett, lila, pink als Farbnamen verwenden. Also irgendwie musst du das ja reglementieren.


----------



## Andre1978 (11. Dez 2008)

Danke erstmal für die vielen schnellen Beiträge/Vorschläge!
Ich werde mir Gedanken machen und mich dann entscheiden....

Dieses Thema ist vorerst erledigt! Danke!

Gruß Andre1978


----------

