Gradient Color und Color in JavaFX
In diesem Artikel schauen wir uns Gradient Color und Color in JavaFX an. Dabei handelt es sich um Farben und Farbübergänge. Wir haben bisher schon mit Farben gearbeitet, jedoch schauen wir uns jetzt das Ganze noch etwas genauer an.
Es gibt in JavaFX verschiedene Wege Farben zu verwenden.
RGB Color in JavaFX
int red = 50;
int green = 100;
int blue = 50;
Rectangle rect = new Rectangle(50,50,300,300);
rect.setFill(Color.rgb(red, green, blue));
Color Name:
Rectangle rect2 = new Rectangle(50,50,300,300);
rect.setFill(Color.RED);
Mit Alpha/Opacity, also Durchsichtigkeit
Rectangle rect = new Rectangle(50,50,300,300);
rect.setFill(Color.rgb(red, green, blue, 0.5)); //wobei 0.5 eine halbe Durchsichtigkeit bringt.
[image img_id=”6261″ alt=”color mit alpha” width=”274″ height=”300″]
HSB Color – Hue, Saturation und Brightness
Rectangle rect = new Rectangle(50,50,300,300);
rect.setFill(Color.hsb(200,1.0,1.0,1.0));
Und Web Color
Rectangle rect = new Rectangle(50,50,300,300);
rect.setFill(Color.web("000000"));
Wobei wir hier einfach die Hexadezimaltabllen verwenden können, die man im Internet findet. Wie bereits in einem früheren Artikel gezeigt.
Color gradient in JavaFX
Wir können Farben jedoch auch mit Übergängen verwenden. Dazu benötigen wir Gradient Color. Dabei sagen wir, wo wir Stop-Punkte haben wollen und welche Farbe diese haben sollen. Außerdem verwenden wir hier einen LinearGradient, welcher einen startX, startY (also die Startpunkt der Gradient Axe) hat, ebenso einen endX und endY. Dann einen Proportionswert, wenn dieser auf True gesetzt wird, werden die Einheiten Koordinaten verwendet, ansonsten die Bildschirmkoordinaten. CycleMethod setzt ob eine CycleMethode für den Gradient gesetzt werden soll, und dann haben wir eine List also eine Liste von stops, welcher wir unsere Liste Übergeben. Am Beispiel sieht das so aus:
[image img_id="6259" alt="color gradient in javaFX" width="278" height="300"]
Stop[] stops = new Stop[] { new Stop(0, Color.BLUE), new Stop(1, Color.RED)};
LinearGradient lg1 = new LinearGradient(0, 0, 0, 1, true, CycleMethod.NO_CYCLE, stops);
Rectangle rect = new Rectangle(50,50,300,300);
rect.setFill(lg1);
Ich empfehle, einfach mal mit den Werten herumzuspielen und dadurch noch besser zu verstehen, welchen Einfluss das auf die Farben hat.