JavaFX: Hinzufügen von Schatten

Sie können feststellen, dass der Schatten in diesem JavaFX Rechteck hier sieht nicht sehr realistisch dargestellt. Das ist, weil es direkt hinter dem Rechteck ist, als ob die Lichtquelle verursacht den Schatten tot voraus waren. Üblicherweise wir erwarten Schatten in einem leichten Winkel von dem Objekt, um die Schatten zu werfen, meist unter dem Objekt und versetzt zu einer Seite.

bild0.jpg

Glücklicherweise ist die Schlagschatten Klasse hat mehrere Eigenschaften, die Sie die Größe und Positionierung des Schattens steuern lassen. Diese Methoden sind in dieser Tabelle aufgeführt sind, die die Einzelheiten nicht nur der Listen Schlagschatten Klasse, sondern auch von seiner Schwester Klasse, Inneren Schatten. Das Inneren Schatten Klasse erstellt einen Schatten im Inneren einer Form anstelle von außerhalb der Form. Vorerst konzentrieren sich auf Schlagschatten.

Die Schlagschatten und InnerShadow Klassen
constructorErläuterung
Schlagschatten ()Erstellt ein neues Schlagschatten bewirken withdefault Einstellungen.
Inneren Schatten()Erstellt ein neues Inneren Schatten bewirken withdefault Einstellungen.
Gängige MethodenErläuterung
Leere setColor (Farbwert)Legt die Farbe für den Schatten zu verwenden. Die Standardeinstellung ist schwarz.
Leere setWidth (double-Wert)Legt die Breite des Schattens. Der Standardwert ist 21.
Leere setHeight (double-Wert)Legt die Höhe des Schattens. Der Standardwert ist 21.
Leere setOffsetX (double-Wert)Die horizontale für den Schatten versetzt. Der Standardwert ist 0.
Leere setOffsetY (double-Wert)Der vertikale Versatz für den Schatten. Der Standardwert ist 0.
Leere setRadius (double-Wert)Der Radius der Unschärfe-Effekt Schatten. Die Standardeinstellung ist10.
Nur SchattenErläuterung
Leere setSpread (double-Wert)Der Anteil (0,0 bis 1,0) des Schattens, asolid Farbe anstatt verschwommen sein sollte. Der Standardwert ist 0.
InnerShadow nurErläuterung
Leere setChoke (double-Wert)Der Anteil (0,0 bis 1,0) des Schattens, asolid Farbe anstatt verschwommen sein sollte. Der Standardwert ist 0.

Die Verfahren der Schlagschatten Klasse ermöglicht es Ihnen, die genaue Geometrie des Schattens Sie angewendet werden soll angeben. Das setWidth und setHeight Methoden können Sie die Größe des Schattens angeben, und die setOffsetX und setOffsetY Methoden können Sie in die Mitte der Form, um die Position des Schattens im Verhältnis ändern. Typischerweise werden Sie eine positive x- und y-Offset hinzufügen, so dass der Schatten unten und nach rechts von der Form erscheint, wie folgt aus:

Schlagschatten shadow1 = new Schlagschatten () - shadow1.setOffsetX (10) -shadow1.setOffsetY (10) -

In diesem Beispiel wird der Schatten 10 Pixel nach rechts und 10 Pixel unterhalb der Form angeordnet.

Das setRadius Methode können Sie die Größe der Unschärfe-Effekt auf die Ränder des Schattens angewendet angeben. Je größer diese Zahl ist, desto unschärfer wird der Schatten erscheinen. Sie können auch die Kontrolle Ausbreitung, was anzeigt, welcher Teil der Unschärfe des Schattens feste Farbe in vor der Unschärfe-Effekt Kicks sein sollte.

Diese Abbildung zeigt eine JavaFX-Anwendung, die neun Variationen des Grundschlagschatten zeigt.

image1.jpg

Um diese beschattet Rechtecke, ein Dienstprogramm Methode erstellen benannt createShadowedBox erstellt wurde. Hier ist der Code für diese Methode:

Rectangle createShadowedBox (doppelte Größe, Doppelshadowwidth, Doppel shadowHeight, Doppel offsetX, Doppel offsetY, Doppelradius) {Rectangle r = new Rectangle (Größe, Größe) -r.setFill (Color.LIGHTGRAY) -r.setStroke (Color.BLACK) -r.setStrokeWidth (2) -DropShadow e = new DropShadow()-e.setWidth(shadowWidth)-e.setHeight(shadowHeight)-e.setOffsetX(offsetX)-e.setOffsetY(offsetY)-e.setRadius(radius)-r.setEffect(e)-return r-}

Wie Sie sehen können, übernimmt diese Methode sechs Parameter: die Größe des Rechtecks ​​zu erstellen (das Rechteck tatsächlich ein Quadrat ist, so wird die Größe sowohl für die Breite und die Höhe verwendet wird), die Breite und Höhe des Schattens, die x - und y-Offsets für den Schatten und die Verwischradius Schatten.

Das Verfahren beginnt durch ein Rechteck zu erstellen. Dann erzeugt es einen Schlagschatten, gilt die Breite, Höhe, x-Offset, y-Offset und Radius, und wendet dann die Wirkung auf das Rechteck und gibt das Rechteck.

Um die tatsächlichen beschattet Rechtecke erstellen, die createShadowBox Methode wurde neun Mal aufgerufen, verschiedene Parameterwerte verwendet:

Rechteck r1 = createShadowedBox (100, 10, 10, 5, 5, 10) -Rectangle r2 = createShadowedBox (100, 20, 20, 10, 10, 10) -Rectangle r3 = createShadowedBox (100, 30, 30, 15, 15 , 10) -Rectangle r4 = createShadowedBox (100, 20, 20, 0, 0, 10) -Rectangle r5 = createShadowedBox (100, 20, 20, 0, 10, 10) -Rectangle r6 = createShadowedBox (100, 20, 20 , 10, 0, 10) -Rectangle r7 = createShadowedBox (100, 20, 20, 10, 10, 0) -Rectangle r8 = createShadowedBox (100, 20, 20, 10, 10, 20) -Rectangle r9 = createShadowedBox (100 , 20, 20, 10, 10, 50) -

Für den ersten Satz von drei, die Größe und Offset des Schattens wurde variiert, in jedem, die gleichen Werte für Breite und Höhe und für die X-Offset und die y-Offset verwenden. Somit zeigen die erste Reihe der Rechtecke in der Abbildung verschiedenen Platzierungen der Schatten unten und auf der rechten Seite der Rechtecke.

Für den nächsten Satz von drei, wobei die x-Versatz oder y-Offset auf Null gesetzt wurde Schwankungen des Offset zu demonstrieren. Und für den letzten Satz von drei, war der Radius variiert. Beachten Sie, dass, wenn der Radius auf 0 gesetzt ist, Kanten der Schatten des knackig sind. Bei größeren Radius Werten wird der Schatten mehr verschwommen.

Diese Abbildung zeigt, wie innere Schatten arbeiten. Für diese Figur wurde nur eine Zeile Code in das geändert createShadowBox Methode: Statt der Schaffung einer Schlagschatten, ein Inneren Schatten erstellt wurde:

InnerShadow e = new InnerShadow () -

Wie Sie sehen können, die Inneren Schatten Klasse stellt den Schatten auf der Innenseite des Rechtecks ​​und nicht auf der Außenseite.

image2.jpg

Menü