Home > Informatik > Java-Klassen > Color

Color

Konstanten

Konstruktoren

Wichtige Methoden

Konstruktoren

Color(int r, int g, int b)

Initialisiert ein Objekt der Klasse Color nach dem RGB-System. Die Werte der drei Parameter müssen zwischen 0 und 255 liegen

// Erstellt ein mittleres Grau
Color gray = new Color(127,127,127);
Color(int r, int g, int b, int a)

Wie der vorherige Konstruktor. Der zusätzliche Parameter, der alpha-Wert, bestimmt die "Deckkraft" der Farbe und muss ebenfalls zwischen 0 und 255 liegen. 0 bedeutet vollständige Transparenz, 255 dagegen vollständige Deckkraft.

// Erstellt ein zu 25% deckendes Grün
Color translucentGreen = new Color(0, 255, 0, 63);
Color(float r, float g, float b)

Initialisiert ein Objekt der Klasse Color nach dem RGB-System. Die Werte der drei Parameter müssen zwischen 0 und 1.0 liegen. Dabei entspricht 1.0 dem integer-Wert 255.

// Erstellt ein mittleres Grau
Color gray = new Color(0.5f, 0.5f, 0.5f);
Color(float r, float g, float b, float a)

Wie der vorherige Konstruktor. Der zusätzliche Parameter, der alpha-Wert, bestimmt die "Deckkraft" der Farbe und muss ebenfalls zwischen 0 und 1 liegen. 0 bedeutet vollständige Transparenz, 1.0 dagegen vollständige Deckkraft.

// Erstellt ein zu 25% deckendes Grün
Color translucentGreen = new Color(0.0f, 1.0f, 0.0f, 0.25f);
Color(int rgb)

Dieser Konstruktor eignet sich, wenn man den Farbcode hexadezimal festlegen möchte.

// Erstellt die Farbe Magenta (Rot + Blau)
Color magenta = new Color(0xFF00FF); // entspricht new Color(255, 0, 255)

Methoden

brighter() / darker()

Diese beiden Methoden dienen dazu, eine hellere bzw. dunklere Version einer bestehenden Farbe zu erzeugen. Dabei ist zu beachten, dass diese Methoden das ursprüngliche Color-Objekt nicht verändern, sondern ein neues Color-Objekt mit den angepassten Farbwerten zurückgeben.

Die Methode brighter() erzeugt eine hellere Version der Farbe. Intern wird dies erreicht, indem die Rot-, Grün- und Blau-Komponenten (RGB) des Farbwerts um einen vordefinierten Faktor erhöht werden.

Entsprechend erzeugt darker() eine dunklere Version der Farbe durch Erniedrigung der RGB-Werte um einen vordefinierten Faktor.

Syntax:

public Color brighter()

public Color darker()

Rückgabewert:

Color - ein neues Color-Objekt

Beispiel:
import java.awt.Color;

public class BrighterDarker 
{
    public static void main(String[] args) 
    {
        // Ein mittleres Rot erstellen
        Color mittleresRot = new Color(127,0,0);
        System.out.println(mittleresRot);  // #1
        
        // Heller und dunkler machen
        Color hellesRot = mittleresRot.brighter();
        Color dunklesRot = mittleresRot.darker();
        System.out.println(hellesRot);     // #2
        System.out.println(dunklesRot);    // #3
        
        // Austesten der Grenzen von brighter()
        // Ein sehr helles Rot erzeugen und heller machen
        Color sehrHellesRot = new Color(250,240,240);
        Color nochHeller = sehrHellesRot.brighter();
        System.out.println(nochHeller);    // #4
        
        // Austesten der Grenzen von darker()
        // Ein sehr dunkles Rot erzeugen und dunkler machen
        Color sehrDunklesRot = new Color(1,0,0);
        Color nochDunkler = sehrDunklesRot.darker();
        System.out.println(nochDunkler);    // #5       
    }
}
Konsolenausgabe (editiert):
#1: java.awt.Color[r=127,g=0,b=0]
#2: java.awt.Color[r=181,g=0,b=0]
#3: java.awt.Color[r=88,g=0,b=0]
#4: java.awt.Color[r=255,g=255,b=255]
#5: java.awt.Color[r=0,g=0,b=0]

Die RGB-Werte können also durch das Aufrufen dieser Methoden nicht den Wert von 255 überschreiten bzw. den Wert von 0 unterschreiten.

equals()

Syntax:

boolean equals(Object obj)

Rückgabewert:

true, wenn die beiden Farben gleich sind, sonst false.

Funktion:

Vergleicht das aktuelle Color-Objekt mit einem anderen Objekt. Die Methode liefert den Wert true, wenn es sich ebenfalls um ein Objekt der Klasse Color handelt und die Farbwerte (Rot, Grün, Blau, Alpha) identisch sind.

Codebeispiel:
Color c1 = new Color(255, 0, 0);
Color c2 = new Color(255, 0, 0);
boolean gleich = c1.equals(c2);  // true
Anmerkungen:

Die Methode überschreibt die Standard-equals()-Methode der Klasse Object.

getAlpha(), getRed(), getGreen(), getBlue()

Syntax:

int getAlpha()

int getRed()

int getGreen()

int getBlue()

Rückgabewert:

Der alpha-Wert bzw. die jeweilige Farbkomponente als int-Wert im Bereich 0 bis 255.

Funktion:

Liefert den Wert der angegebenen Komponente des Color-Objekts zurück: Alpha (Transparenz), Rot, Grün oder Blau.

Codebeispiel:
Color c = new Color(100, 150, 200, 128);
int a = c.getAlpha();  // 128
int r = c.getRed();    // 100
int g = c.getGreen();  // 150
int b = c.getBlue();   // 200
Anmerkungen:

Alle vier Methoden liefern Werte im Bereich 0 bis 255. Der Alpha-Wert bestimmt die Transparenz (0 = vollständig durchsichtig, 255 = vollständig deckend).

getRGB()

Syntax:

int getRGB()

Rückgabewert:

Ein int-Wert, der die Farbe im ARGB-Format enthält.

Funktion:

Liefert die gesamte Farbe (Alpha, Rot, Grün, Blau) als einen 32-Bit-Integer zurück. Dieses Format wird häufig intern für Vergleiche und Speicherung verwendet.

Codebeispiel:
Color c = new Color(255, 0, 0);
int rgb = c.getRGB();  
// liefert -65536  (dezimal)
// bzw. 0xFFFF0000 (hexadezimal, Rot)
Anmerkungen:

Eine int-Variable hat eine Länge von 32 Bit, also 4 x 8 Bit. Die oberen 8 Bit enthalten den Alpha-Wert, die weiteren jeweils Rot, Grün und Blau (ARGB).

toString()

Syntax:

String toString()

Rückgabewert:

Eine textuelle Beschreibung des Color-Objekts.

Funktion:

Wandelt das Color-Objekt in eine Zeichenkette um, die die Farbwerte enthält (z. B. java.awt.Color[r=255,g=0,b=0]).

Codebeispiel:
Color c = new Color(255, 0, 0);
String s = c.toString();  
// "java.awt.Color[r=255,g=0,b=0]"
Anmerkungen:

Die Ausgabe dient in erster Linie zu Kontroll- und Debugging-Zwecken.

decode()

Syntax:

static Color decode(String nm)

Rückgabewert:

Ein neues Color-Objekt mit den angegebenen Werten.

Funktion:

Wandelt eine Zeichenkette in eine Farbe um. Unterstützt dezimale, oktale und hexadezimale Angaben (z. B. "#RRGGBB" oder "0xRRGGBB").

Codebeispiel:
Color c1 = Color.decode("#FF0000");   // Rot
Color c2 = Color.decode("0x00FF00");  // Grün
Color c3 = Color.decode("255");       // Blau-Komponente 255 -> sehr dunkelblau
Anmerkungen:

Besonders nützlich, wenn man Farben aus externen Quellen (z. B. HTML-Farbcodes) verwenden möchte.