Literatur

Color

Die Klasse java.awt.Color bietet das gesamte Farbspektrum in Java. Sie besitzt vordefinierte Konstanten für einige Farben. Auf diese Konstanten kann direkt mit der Punktnotation zugegriffen werden ohne ein Objekt erzeugen zu müssen.

Die Farbe Schwarz wird beispielsweise durch die Konstante

Color.BLACK

repräsentiert.

Die Klasse Color stellt Konstanten für folgende Farben zur Verfügung:

Konstante Farbe RGB-Wert Hexadezimal-Wert
BLACK   rgb(0, 0, 0) #000000
BLUE   rgb(0, 0, 255) #0000FF
CYAN   rgb(0, 255, 255) #00FFFF
DARK_GRAY   rgb(64, 64, 64) #404040
GRAY   rgb(128, 128, 128) #808080
GREEN   rgb(0, 255, 0) #00FF00
LIGHT_GRAY   rgb(192, 192, 192) #C0C0C0
MAGENTA   rgb(255, 0, 255) #FF00FF
PINK   rgb(255, 175, 175) #FFAFAF
RED   rgb(255, 0, 0) #FF0000
ORANGE   rgb(255, 200, 0) #FFC800
WHITE   rgb(255, 255, 255) #FFFFFF
YELLOW   rgb(255, 255, 0) #FFFF00

Der Farbwert setzt sich aus den drei Grundfarben zusammen Rot, Grün und Blau (RGB). Alle anderen Farben werden aus einer Kombination dieser Grundfarben zusammengestellt. Die obige Tabelle zeigt die Konstanten mit den dazugehörigen Farben und deren RGB-Werten.

Jeder Farbton kann in der RGB-Darstellung einen Wert zwischen 0 und 255 annehmen. Im hexadezimalen System entspricht dies 0 - FF. In der Regel ist die Farbtiefe mit 32-Bit angegeben. Wenn wir uns jetzt mal den maximalen hexadezimalen Wert FFFFFF ansehen, kommen wir jedoch nur auf 24 Bit (ein F entspricht 4-Bit). Sie könnten sich jetzt fragen, wo sich denn die anderen 8 Bit "versteckten. Das ist ganz einfach zu erklären: Diese 8-Bits stehen für die Transparenz einer Farbe. Sie werden oft konstant auf FF (dezimal: 255) gesetzt, dies bedeutet "voll sichtbar". Manchmal spricht man auch vom alpha- bzw. von einem opaquen-Wert (engl. opacity).  Ein Wert von 0 würde bedeutet, dass die Farbe nicht sichtbar ist.

Gut veranschaulichen kann man sich den alpha-Wert anhand des Videotextes von einem Fernseher. Beim Einschalten des Videotextes ist der alpha-Wert für den Hintergrund auf 255 gesetzt werden, d.h. der Hintergrund, in der Regel schwarz, ist voll sichtbar. Man kann den Hintergrund aber auch wegschalten, so dass man den Videotext und das Fernsehbild sieht. Der alpha-Wert des Hintergrundes des Videotextes wurde nun auf 0 gesetzt. Der alpha-Wert ist z.B. auch bei Wasserzeichen, wie man sie häufig auf Bildern im Internet findet, wichtig. Damit macht man es möglich, dass das Wasserzeichen transparent ist, so dass man  auch das Bild  an der Stelle, wo das Wasserzeichen platziert wurde, noch erkennen kann. Je niedriger der alpha-Wert des Wasserzeichens, umso transparenter ist es und umso stärker ist der Hintergrund erkennbar.

Schauen wir uns nun einmal zwei Konstruktoren der Klasse Color an.

Color(int r, int g, int b)
Color(int r, int g, int b, int a)

Der erste Konstruktor erwartet den Farbwert für die drei Grundfarben rot, grün und blau. Es wird von voller Sichtbarkeit ausgegangen. Die Klasse Color bietet im zweiten Konstruktor auch die Möglichkeit, den alpha-Wert explizit vorzugeben. Ähnliche Konstruktoren gibt es auch noch mit Übergabeparametern vom Typ float. Die Werte werden dann wie folgt umgesetzt:

    Ein float-Wert von 0.0 entspricht einem int-Wert von 0
    Ein float-Wert von 1.0 entspricht einem int-Wert von 255

Color bietet mit den Methoden brighter und darker auch die Möglichkeit, einen bestehenden Farbton heller bzw. dunkler zu machen. Die Methoden liefern uns dann den modifizierten Farbton zurück.

public Color brighter()
public Color darker()

Jeder Wert für rot, grün, blau und alpha kann über eine separate get-Methode zurückgegeben werden.

Die Klasse bietet mit decode außerdem eine Methode um einen String, der einen 24-Bit Integer repräsentiert, oder einen hexadezimalen Wert in eine Farbe umzuwandeln:

static Color decode(String nm)

Dies ist eine statische Methode und liefert, falls möglich, ein Objekt der Klasse Color zurück, ansonsten wird eine NumberFormatException geworfen. Ein String für die Farbe rot könnte z.B. so aussehen "0xFF0000".

Eine weitere Methode wandelt, falls möglich, einen Text in eine Farbe um. Diese Methode heißt getColor und sieht wie folgt aus.

public static Color getColor(String nm)

Diese Methode schaut im System nach, welche Farbe dem übergebenen Text zugeordnet ist. Würde man den den String "rot" übergeben, so würde die Konstante Color.RED zurückgegeben werden.

Für die meisten Anwendungen, die man entwickelt, werden wahrscheinlich die Konstanten für die Farbgestaltung ausreichen.

Kleine Anmerkung von unserer Seite:

Gestalten Sie eine Anwendung bitte höchstens mit vier bis fünf Farben. Zu viele Farben können die Übersichtlichkeit deutlich verringern. Setzen Sie nur wenige Farben gezielt ein, um die Übersichtlichkeit zu verbessern.