JavaFX - Effekte

Ein Effekt ist eine Aktion, die das Erscheinungsbild der Grafiken verbessert. In JavaFX ist ein Effekt ein Algorithmus, der auf Knoten angewendet wird, um deren Erscheinungsbild visuell zu verbessern. Die Wirkungseigenschaft derNode Klasse wird verwendet, um den Effekt anzugeben.

In JavaFX können Sie verschiedene Effekte für einen Knoten festlegen, z bloom, blur und glow. Jeder dieser Effekte wird durch eine Klasse dargestellt, und alle diese Klassen sind in einem Paket mit dem Namen verfügbarjavafx.scene.effect.

Anwenden von Effekten auf einen Knoten

Sie können einen Effekt auf einen Knoten anwenden, indem Sie die Option verwenden setEffect()Methode. An diese Methode müssen Sie das Objekt des Effekts übergeben.

Um einen Effekt auf einen Knoten anzuwenden, müssen Sie -

  • Erstellen Sie den Knoten.

  • Instanziieren Sie die jeweilige Klasse des Effekts, der angewendet werden muss.

  • Legen Sie die Eigenschaften des Effekts fest.

  • Wenden Sie den Effekt mit dem auf den Knoten an setEffect() Methode.

Erstellen der Knoten

Erstellen Sie zunächst die Knoten in einer JavaFX-Anwendung, indem Sie ihre jeweiligen Klassen instanziieren.

Zum Beispiel, wenn Sie einen Glow-Effekt auf ein Bild in Ihrer Anwendung anwenden möchten. Zunächst müssen Sie einen Bildknoten erstellen, indem Sie die Bildklasse instanziieren und ihre Ansicht wie unten gezeigt festlegen.

//Creating an image 
Image image = new Image("https://www.tutorialspoint.com/green/images/logo.png"); 
       
//Setting the image view 
ImageView imageView = new ImageView(image); 

//Setting the position of the image 
imageView.setX(100); 
imageView.setY(70);  

//setting the fit height and width of the image view 
imageView.setFitHeight(200);
imageView.setFitWidth(400); 

//Setting the preserve ratio of the image view 
imageView.setPreserveRatio(true);

Instanziieren der jeweiligen Klasse

Instanziieren Sie die Klasse, die den Effekt darstellt, der auf den erstellten Knoten angewendet werden muss.

Zum Beispiel - Um den Glow-Effekt anzuwenden, müssen Sie den instanziieren Glow Klasse wie im folgenden Codefeld gezeigt -

Glow glow = new Glow();

Festlegen der Eigenschaften des Effekts

Nach dem Instanziieren der Klasse müssen Sie die Eigenschaften für den Effekt mithilfe der Setter-Methoden festlegen.

Beispiel: Um eine dreidimensionale Box zu zeichnen, müssen Sie deren Breite, Höhe und Tiefe übergeben. Sie können diese Werte mit ihren jeweiligen Setter-Methoden angeben, wie unten gezeigt -

//setting the level property 
glow.setLevel(0.9);

Hinzufügen eines Effekts zum Knoten

Schließlich können Sie den erforderlichen Effekt mit dem auf den Knoten anwenden setEffect()Methode. Beispiel: Um den Glow-Effekt auf den Bildknoten festzulegen, müssen Sie das Objekt der Glow-Klasse wie folgt an diese Methode übergeben:

imageView.setEffect(glow);

JavaFX Effects- Die folgende Tabelle enthält eine Liste der verschiedenen von JavaFX bereitgestellten Effekte (Klassen). Diese Klassen sind im aufgerufenen Paket vorhandenjavafx.scene.effect.

S.No. Form und Beschreibung
1 Farbanpassung

Sie können die Farbe eines Bildes anpassen, indem Sie den Farbanpassungseffekt darauf anwenden. Dies beinhaltet die Einstellung derhue, saturation, brightness und contrast auf jedem Pixel

Die benannte Klasse ColorAdjust des Pakets javafx.scene.effect repräsentiert den Farbanpassungseffekt.

2 Farbeingabe

Der Farbeingabeeffekt liefert die gleiche Ausgabe wie das Zeichnen und Füllen eines Rechtecks ​​mit Farbe. Im Gegensatz zu anderen Effekten wird bei Anwendung dieses Effekts auf einen Knoten nur ein rechteckiges Feld angezeigt (nicht der Knoten). Dieser Effekt wird meistens als Eingabe für andere Effekte verwendet.

Die benannte Klasse ColorInput des Pakets javafx.scene.effect repräsentiert den Farbeingabeeffekt.

3 Bildeingabe

Der Bildeingabeeffekt in JavaFX bettet nur ein Bild in den JavaFX-Bildschirm ein.

Genau wie der Farbeingabeeffekt (wird verwendet, um den angegebenen farbigen rechteckigen Bereich als Eingabe an einen anderen Effekt zu übergeben) wird der Bildeingabeeffekt verwendet, um das angegebene Bild als Eingabe an einen anderen Effekt zu übergeben.

Die benannte Klasse ImageInput des Pakets javafx.scene.effect repräsentiert den Bildeingabeeffekt.

4 Mischung

Im Allgemeinen bedeutet Mischen eine Mischung aus zwei oder mehr verschiedenen Dingen oder Substanzen. Wenn wir diesen Überblendungseffekt anwenden, werden die Pixel von zwei verschiedenen Eingaben an derselben Stelle verwendet und eine kombinierte Ausgabe basierend auf dem erzeugtblend mode.

Die benannte Klasse Blend des Pakets javafx.scene.effect repräsentiert den Mischungseffekt.

5 blühen

Beim Anwenden des Bloom-Effekts werden Pixel in einigen Teilen des Knotens zum Leuchten gebracht.

Die benannte Klasse Bloom des Pakets javafx.scene.effect repräsentiert den Bloom-Effekt.

6 Glühen

Genau wie bei Bloom lässt der Glow-Effekt das angegebene Eingabebild leuchten. Durch diesen Effekt werden die hellen Pixel der Eingabe heller.

Die benannte Klasse Glow des Pakets javafx.scene.effect repräsentiert den Glow-Effekt.

7 Box Unschärfe

Wenn dieser Unschärfeeffekt auf einen Knoten angewendet wird, wird er unklar. Box Blur ist eine Art Unschärfeeffekt, der von JavaFX bereitgestellt wird. In diesem Effekt wird beim Anwenden von Unschärfe auf einen Knoten ein einfacher Boxfilter verwendet.

Die benannte Klasse BoxBlur des Pakets javafx.scene.effect repräsentiert den Boxblur-Effekt.

8 GaussianBlur

Genau wie Box Blur ist Gaussian ein Effekt, um die Knoten in JavaFX zu verwischen. Der einzige Unterschied in derGaussian Blur effect ist, dass ein Gaußscher Faltungskern verwendet wird, um einen Unschärfeeffekt zu erzeugen.

Die Klasse namens GaussianBlur des Pakets javafx.scene.effect repräsentiert den Gaußschen Weichzeichnungseffekt.

9 Bewegungsunschärfe

Genau wie bei Gaußschen Effekten ist Bewegungsunschärfe ein Effekt zum Verwischen der Knoten in JavaFX. Es wird auch ein Gaußscher Faltungskern verwendet, um einen Unschärfeeffekt zu erzeugen. Der Unterschied besteht jedoch darin, dass der Gaußsche Faltungskern mit einem bestimmten Winkel verwendet wird.

Die benannte Klasse MotionBlur des Pakets javafx.scene.effect repräsentiert den Bewegungsunschärfeeffekt.

10 Reflexion

Beim Anwenden des Reflexionseffekts auf einen Knoten in JavaFX wird am unteren Rand des Knotens eine Reflexion hinzugefügt.

Die benannte Klasse Reflection des Pakets javafx.scene.effect repräsentiert den Reflexionseffekt.

11 SepiaTone

Wenn Sie den Sepia-Toneffekt auf einen Knoten in JavaFX anwenden (Bild im Allgemeinen), wird er mit einer rotbraunen Farbe getönt.

Die benannte Klasse SepiaTone des Pakets javafx.scene.effect repräsentiert den Sepia-Toneffekt.

12 Schatten

Dieser Effekt erstellt ein Duplikat des angegebenen Knotens mit unscharfen Kanten.

Die benannte Klasse Shadow des Pakets javafx.scene.effect repräsentiert den Sepia-Toneffekt.

13 DropShadow

Wenn Sie diesen Effekt auf einen Knoten anwenden, wird hinter dem angegebenen Knoten ein Schatten erstellt.

Die benannte Klasse DropShadow des Pakets javafx.scene.effect repräsentiert den Schlagschatteneffekt.

14 Inneren Schatten

Wenn Sie diesen Effekt auf einen Knoten anwenden, wird innerhalb der Kanten des Knotens ein Schatten erstellt.

Die benannte Klasse InnerShadow des Pakets javafx.scene.effect repräsentiert den inneren Schatteneffekt.

15 Beleuchtung

Der Lichteffekt wird verwendet, um ein Licht von einer Lichtquelle zu simulieren. Es gibt nämlich verschiedene Arten von Lichtquellenpoint, distant und spot.

Die benannte Klasse Lighting des Pakets javafx.scene.effect repräsentiert den Lichteffekt.

16 Light.Distant

Beim Anwenden dieses Effekts auf einen Knoten wird ein Licht darauf simuliert, als würde es von einer entfernten Lichtquelle erzeugt.

Distant Light Source- Eine Quelle, die sich weit vom Knoten entfernt befindet. Hier wird das Licht von der Quelle in eine Richtung gedämpft.

Die benannte Klasse Light.Distant des Pakets javafx.scene.effect repräsentiert die entfernte Lichtquelle.

17 Lichtfleck

Beim Anwenden dieses Effekts auf einen Knoten wird ein Licht darauf simuliert, als würde es von einem Punktlicht erzeugt.

Spot light Source- Das Licht dieser Quelle wird in alle Richtungen gedämpft. Die Intensität des Lichts hängt von der Entfernung des Objekts von der Quelle ab.

Die benannte Klasse Light.Spot des Pakets javafx.scene.effect repräsentiert die entfernte Lichtquelle.

18 Point.Spot

Beim Anwenden dieses Effekts auf einen Knoten wird ein Licht darauf simuliert, als würde es von einer Punktlichtquelle erzeugt.

Point Light Source- Das Licht dieser Quelle wird von einem einzigen Punkt aus in alle Richtungen gedämpft. Die Intensität des Lichts hängt von der Entfernung des Objekts von der Quelle ab.

Die benannte Klasse Point.Spot des Pakets javafx.scene.effect repräsentiert das Punktlicht.