Farben als Enum

C

Carcharoth

Aktives Mitglied
Hallo

Ich habe ein Programm welches nacheinander diverse grafische Sachen zeichnet und ich möchte, dass es jedes Mal die Farbe wechselt.
Dazu habe ich mir ein Enum gemacht.

Java:
public enum Farben {
    RED, YELLOW, BLUE, BLACK, VIOLET, CYAN, GREEN, ORANGE, PINK, WHITE, MAGENTA, DARK_GRAY, LIGHT_GRAY, GRAY;
}

Wie kann ich dem Enum sagen, dass das alles Colors sind ? Damit ich danach sowas schreiben kann wie:
Java:
g2d.setColor(Farben.values()[i]);

Danke und Gruss
 
H

httpdigest

Top Contributor
Du könntest dem Enum einen Konstruktor mit einem `java.awt.Color` Parameter geben und eine Instanzvariable, die du im Konstruktor setzt, und die einzelnen Literale dann mit ihren jeweiligen `java.awt.Color` Instanzen erzeugen:
Java:
import java.awt.Color;
public enum Farben {
  RED(Color.RED),
  YELLOW(Color.YELLOW),
  ...;

  public final Color awtColor;
  
  private Farben(Color awtColor) {
    this.awtColor = awtColor;
  }
}
und dann:
Java:
g2d.setColor(Farben.values()[i].awtColor);
 
kneitzel

kneitzel

Top Contributor
Also erst einmal gibt es doch schon die Klasse Color mit entsprechenden Konstanten:

Und wenn Du da lediglich über ein Array zugreifen können willst, dann kannst Du ein entsprechendes Array aus den Konstanten da bauen. Sollte eine Farbe fehlen, kannst Du die mit dem new ja jederzeit erzeugen...

Ansonsten kannst Du prinzipiell in einer Enum auch weitere Dinge speichern. Also etwas wie:

Java:
public enum Farben {
    RED(Color.RED);
    
    private Color color;
    public Color getColor() { return color; }
    
    Farben(Color color) { this.color = color; }
}
(Einfach mal so für Rot geschrieben ohne es zu probieren ...)

Der Zugriff über den Index ist aber auch etwas dubios muss ich sagen. Denn der ist ja nicht fest Vorgegeben. Wenn Du das enum etwas veränderst, dann stimmt hinterher der Zugriff nicht mehr. Also ein einfaches Code Refactoring, das die Elemente z.B. sortiert, macht dann ggf Probleme. Aber wenn das vorher ausgewählt wird, dann mag es gehen... Aber selbst da: Der Nutzer wählt Farbe 8 und beim nächsten Update ist an Platz 8 eine andere Farbe?

Aber wenn Du Dir das schon so überlegt hast, dann ist es ok, aber ohne dein Usecase zu kennen, habe ich da leichte Bedenken.
 
C

Carcharoth

Aktives Mitglied
Danke für die Tipps. Ich werde:
1) mein konkretes Problem mit einem Array von Konstanten aus der Klasse Color lösen.
2) etwas mehr mit Enum rumexperimentieren.

Gruss
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
O JTable in Excel mit Farben Java Basics - Anfänger-Themen 8
L Input/Output Konsole in Farben schreiben Java Basics - Anfänger-Themen 4
L Input/Output In Farben schreiben Java Basics - Anfänger-Themen 3
M Farben/Color Abfragen von Farben innerhalb einer Methode Java Basics - Anfänger-Themen 9
M Hilfe bei Zählen von Farben? Java Basics - Anfänger-Themen 7
A Farben wechseln mit JButton Java Basics - Anfänger-Themen 2
L farben 0xff000000 Java Basics - Anfänger-Themen 2
O Verschiedene Farben in einer GUI Java Basics - Anfänger-Themen 15
Dogge Farben-Spiel Java Basics - Anfänger-Themen 20
L Input/Output [SWT] Mehrere Farben im Text Java Basics - Anfänger-Themen 2
D Mehrere verschiedene Farben pro fillRect Java Basics - Anfänger-Themen 3
C RGB Farben Java Basics - Anfänger-Themen 4
K Farben in Variablen speichern Java Basics - Anfänger-Themen 15
S Wort in zwei farben aufleuchten lassen Java Basics - Anfänger-Themen 2
A Mehrere verschieden Farben / Textfeld Java Basics - Anfänger-Themen 2
B Farben vergleichen Java Basics - Anfänger-Themen 5
B Hex in Int und Farben abschwächen Java Basics - Anfänger-Themen 7
Developer_X in JEditorPane verschiedene Farben, verwenden Java Basics - Anfänger-Themen 7
J list mit unterschiedlichen farben Java Basics - Anfänger-Themen 6
G Applet und Farben Java Basics - Anfänger-Themen 7
M Raster mit zufälligen Farben Java Basics - Anfänger-Themen 4
L Farbverlauf in Java mit RGB Farben Java Basics - Anfänger-Themen 3
L JLabel mit unterschiedlichen Farben Java Basics - Anfänger-Themen 4
K Schrift und Farben im Frame (Anfänger) Java Basics - Anfänger-Themen 2
P Farben Invertieren per BufferedImageOp Java Basics - Anfänger-Themen 4
F Farben eines ganzen BufferedImage invertieren Java Basics - Anfänger-Themen 2
S Problem mit PNG (16mio farben.) Java Basics - Anfänger-Themen 4
R Farben in einem Applet Java Basics - Anfänger-Themen 6
E Scrollbar- Farben Java Basics - Anfänger-Themen 5
I Farben bei der Console Java Basics - Anfänger-Themen 2
G Buttons und Farben Java Basics - Anfänger-Themen 6
G buttons mit wechselnden farben belegen Java Basics - Anfänger-Themen 3
Dilandau konstante eigene farben im programm definieren Java Basics - Anfänger-Themen 13
N enum Attribut von Objekten einer Hashmap ausgeben Java Basics - Anfänger-Themen 6
I JAXB und Enum Java Basics - Anfänger-Themen 7
M Enum-Variable HashMap zuweisen Java Basics - Anfänger-Themen 5
B Enum innerhalb einer Klasse / anderes Konzept Java Basics - Anfänger-Themen 8
N Enum Typen, was passiert intern mit ihnen? Java Basics - Anfänger-Themen 2
A enum Java Basics - Anfänger-Themen 6
O Enum Array Rekursiv abarbeiten Java Basics - Anfänger-Themen 44
B ENUM to List<String> konvertieren Java Basics - Anfänger-Themen 2
N Java Enum converter Methode Java Basics - Anfänger-Themen 5
F Enum von Ländern Java Basics - Anfänger-Themen 8
J Klassen Enum als Informationsträger Java Basics - Anfänger-Themen 10
T Datentypen enum static Chaos (blutiger anfänger) Java Basics - Anfänger-Themen 5
R Enum ist das gleiche wie? Java Basics - Anfänger-Themen 15
P Klassen Richtige Anwendung einer Enum-Klasse Java Basics - Anfänger-Themen 11
E Datentypen Problem beim Speichern von enum. Java Basics - Anfänger-Themen 10
J Compiler-Fehler class interface or enum expected Java Basics - Anfänger-Themen 1
E Objektvergleich Enum Java Basics - Anfänger-Themen 7
kilopack15 Euromünzen in enum als Liste ausgeben Java Basics - Anfänger-Themen 11
N Enum als generischer Typ Java Basics - Anfänger-Themen 4
H Datentypen Fehler bei Verwendung von enum Java Basics - Anfänger-Themen 9
lBlKha0s Fehlermeldung : class interface or enum expected Java Basics - Anfänger-Themen 9
T error: class, interface, or enum expected Java Basics - Anfänger-Themen 5
S Menüauswahl per Enum Java Basics - Anfänger-Themen 12
F Enum via String definieren Java Basics - Anfänger-Themen 2
L Compiler-Fehler error: class, interface or enum expected Java Basics - Anfänger-Themen 2
M java.lang.Enum.valueOf(Unknown Source) Java Basics - Anfänger-Themen 2
M Enum-Variabel-Abfrage funktioniert nicht? Java Basics - Anfänger-Themen 2
P Fallunterscheidung mit Überprüfung (enum) Java Basics - Anfänger-Themen 11
H enum Type Java Basics - Anfänger-Themen 6
F Operatoren Enum aus Textdabei laden Java Basics - Anfänger-Themen 3
P enum: cannot be resolved to a type Java Basics - Anfänger-Themen 2
kaoZ Variablen Konstantensammlung vs. Enum Java Basics - Anfänger-Themen 9
H Enum außerhalb einer Klasse? Java Basics - Anfänger-Themen 2
K OOP Aufzählungstypen! enum Currency!!! Java Basics - Anfänger-Themen 5
F ENUM als Variable Java Basics - Anfänger-Themen 4
M Enum: Zugriff auf Konstanten Java Basics - Anfänger-Themen 7
W Enum Konstruktor Type Java Basics - Anfänger-Themen 2
A Erste Schritte ENUM - Werte zurückgeben Java Basics - Anfänger-Themen 5
D Enum als Parameter Java Basics - Anfänger-Themen 6
B Variablen Instanz von Enum zur Laufzeit erstellen und zuweisen Java Basics - Anfänger-Themen 2
B Datentypen Enum vererben/gruppieren? Java Basics - Anfänger-Themen 6
F Datentypen enum Java Basics - Anfänger-Themen 5
J Enum zählen Java Basics - Anfänger-Themen 8
D Einlesen eines Enum-Wertes per console Java Basics - Anfänger-Themen 3
K String mit ENUM vergleichen? Java Basics - Anfänger-Themen 6
N enum vergleiche Klammern? Java Basics - Anfänger-Themen 5
J public enum? in Java Java Basics - Anfänger-Themen 9
D Erste Schritte Enum - das unbekannte Wesen Java Basics - Anfänger-Themen 3
Y ENUM auslesen (Name des ENUM als Variable) Java Basics - Anfänger-Themen 4
P Compiler-Fehler "class, interface, or enum expected" Java Basics - Anfänger-Themen 5
K class, interface or enum expected Java Basics - Anfänger-Themen 14
pg1337 enum-Aufgabe Java Basics - Anfänger-Themen 5
N was sagt enum aus? Java Basics - Anfänger-Themen 3
S Methoden Enum Parameter in Methode Java Basics - Anfänger-Themen 7
G Datentypen enum Frage Java Basics - Anfänger-Themen 3
R Probleme mit Enum Java Basics - Anfänger-Themen 10
B Enum: Instanzen Java Basics - Anfänger-Themen 10
B Generic? Enum - So lösbar? Java Basics - Anfänger-Themen 8
T class, interface, or enum expected Java Basics - Anfänger-Themen 2
M Vererbung Enum Vererbung/Polymorphie Java Basics - Anfänger-Themen 2
P Enum Attribut in Konstruktoren Java Basics - Anfänger-Themen 10
4 Enum Problem Java Basics - Anfänger-Themen 2
turmaline Bindestrich in enum? Java Basics - Anfänger-Themen 5
T Enum - Key als Value ermitteln Java Basics - Anfänger-Themen 7
X enum Fehlermeldung "The public type Day must be defined in its own file" Java Basics - Anfänger-Themen 8
T ist enum.ordinal keine Konstante? Java Basics - Anfänger-Themen 7
R State machine mit enum Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Anzeige

Neue Themen


Oben