JavaFX - Effets

Un effet est une action qui améliore l'apparence des graphiques. Dans JavaFX, un effet est un algorithme appliqué sur les nœuds pour améliorer leur apparence visuellement. La propriété d'effet duNode class est utilisé pour spécifier l'effet.

Dans JavaFX, vous pouvez définir divers effets sur un nœud, tels que bloom, blur et glow. Chacun de ces effets est représenté par une classe et toutes ces classes sont disponibles dans un package nomméjavafx.scene.effect.

Application d'effets à un nœud

Vous pouvez appliquer un effet à un nœud en utilisant le setEffect()méthode. Pour cette méthode, vous devez passer l'objet de l'effet.

Pour appliquer un effet à un nœud, vous devez -

  • Créez le nœud.

  • Instanciez la classe respective de l'effet à appliquer.

  • Définissez les propriétés de l'effet.

  • Appliquez l'effet au nœud à l'aide du setEffect() méthode.

Création des nœuds

Tout d'abord, créez les nœuds dans une application JavaFX en instanciant leurs classes respectives.

Par exemple, si vous souhaitez appliquer un effet d'éclat à une image dans votre application. Tout d'abord, vous devez créer un nœud d'image en instanciant la classe Image et en définissant sa vue comme indiqué ci-dessous.

//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);

Instanciation de la classe respective

Instanciez la classe représentant l'effet qui doit être appliqué au nœud créé.

Par exemple - Pour appliquer l'effet d'éclat, vous devez instancier le Glow classe comme indiqué dans la zone de code suivante -

Glow glow = new Glow();

Définition des propriétés de l'effet

Après avoir instancié la classe, vous devez définir les propriétés de l'effet à l'aide de ses méthodes de définition.

Par exemple - Pour dessiner une boîte en 3 dimensions, vous devez passer sa largeur, sa hauteur et sa profondeur. Vous pouvez spécifier ces valeurs en utilisant leurs méthodes de réglage respectives comme indiqué ci-dessous -

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

Ajouter un effet au nœud

Enfin, vous pouvez appliquer l'effet requis au nœud en utilisant le setEffect()méthode. Par exemple: pour définir l'effet de lueur sur le nœud d'image, vous devez passer l'objet de la classe Glow à cette méthode comme suit -

imageView.setEffect(glow);

JavaFX Effects- Le tableau suivant vous donne la liste des différents effets (classes) fournis par JavaFX. Ces classes existent dans le package appeléjavafx.scene.effect.

S. Non Forme et description
1 Réglage de la couleur

Vous pouvez régler la couleur d’une image en lui appliquant l’effet de réglage de la couleur. Cela comprend l'ajustement duhue, saturation, brightness et contrast sur chaque pixel

La classe nommée ColorAdjust du forfait javafx.scene.effect représente l'effet de réglage de la couleur.

2 Entrée couleur

L'effet d'entrée de couleur donne le même résultat que dessiner un rectangle et le remplir de couleur. Contrairement à d'autres effets, si cet effet est appliqué à n'importe quel nœud, il n'affiche qu'une boîte rectangulaire (pas le nœud). Cet effet est principalement utilisé pour passer comme entrée pour d'autres effets.

La classe nommée ColorInput du forfait javafx.scene.effect représente l'effet d'entrée de couleur.

3 Entrée d'image

L'effet d'entrée d'image dans JavaFX incorpore simplement une image à l'écran JavaFX.

Tout comme l'effet d'entrée de couleur (il est utilisé pour transmettre la région rectangulaire colorée spécifiée comme entrée à un autre effet), l'effet d'entrée d'image est utilisé pour transmettre l'image spécifiée en tant qu'entrée à un autre effet.

La classe nommée ImageInput du forfait javafx.scene.effect représente l'effet d'entrée d'image.

4 Mélange

En général, mélange signifie mélange d'au moins deux choses ou substances différentes. Si nous appliquons cet effet de fusion, il prend les pixels de deux entrées différentes, au même endroit et il produit une sortie combinée basée sur leblend mode.

La classe nommée Blend du forfait javafx.scene.effect représente l'effet de fusion.

5 Floraison

Lors de l'application de l'effet de floraison, les pixels de certaines parties du nœud sont amenés à briller.

La classe nommée Bloom du forfait javafx.scene.effect représente l'effet de floraison.

6 lueur

Tout comme la floraison, l'effet Glow fait briller l'image d'entrée donnée, cet effet rend les pixels lumineux de l'entrée plus lumineux.

La classe nommée Glow du forfait javafx.scene.effect représente l'effet lumineux.

sept Flou de boîte

En appliquant cet effet de flou à un nœud, il est rendu flou. Le flou de boîte est une sorte d'effet de flou fourni par JavaFX. Dans cet effet, lorsque nous appliquons un flou à un nœud, un simple filtre de boîte est utilisé.

La classe nommée BoxBlur du forfait javafx.scene.effect représente l'effet boxblur.

8 Flou gaussien

Tout comme Box Blur Gaussian est un effet pour brouiller les nœuds dans JavaFX. La seule différence dans leGaussian Blur effect est qu'un noyau de convolution gaussien est utilisé pour produire un effet de flou.

La classe nommée GaussianBlur du package javafx.scene.effect représente l'effet Flou gaussien.

9 Flou de mouvement

Tout comme les effets gaussiens, Motion Blur est un effet pour brouiller les nœuds dans JavaFX. Il utilise également un noyau de convolution gaussien pour produire un effet de flou, mais la différence est que le noyau de convolution gaussien est utilisé avec un angle spécifié.

La classe nommée MotionBlur du forfait javafx.scene.effect représente l'effet Flou de mouvement.

dix Réflexion

Lors de l'application de l'effet de réflexion à un nœud dans JavaFX, un reflet de celui-ci est ajouté au bas du nœud.

La classe nommée Reflection du forfait javafx.scene.effect représente l'effet de réflexion.

11 Sépia

Lors de l'application de l'effet de ton sépia à un nœud dans JavaFX (image en général), il est tonifié avec une couleur brun rougeâtre.

La classe nommée SepiaTone du forfait javafx.scene.effect représente l'effet de ton sépia.

12 Ombre

Cet effet crée un double du nœud spécifié avec des bords flous.

La classe nommée Shadow du forfait javafx.scene.effect représente l'effet de ton sépia.

13 DropShadow

Lors de l'application de cet effet à un nœud, une ombre sera créée derrière le nœud spécifié.

La classe nommée DropShadow du forfait javafx.scene.effect représente l'effet d'ombre portée.

14 Ombre intérieure

En appliquant cet effet à un nœud, une ombre sera créée à l'intérieur des bords du nœud.

La classe nommée InnerShadow du forfait javafx.scene.effect représente l'effet d'ombre intérieure.

15 Éclairage

L'effet d'éclairage est utilisé pour simuler une lumière provenant d'une source lumineuse. Il existe différents types de sources lumineuses à savoirpoint, distant et spot.

La classe nommée Lighting du forfait javafx.scene.effect représente l'effet d'éclairage.

16 Léger.

En appliquant cet effet à un nœud, une lumière est simulée dessus, comme si elle était générée par une source lumineuse distante.

Distant Light Source- Une source éloignée du nœud. Ici, la lumière est atténuée dans une direction à partir de la source.

La classe nommée Light.Distant du forfait javafx.scene.effect représente la source lumineuse distante.

17 Zone de lumière

En appliquant cet effet à un nœud, une lumière est simulée dessus, comme si elle était générée par un spot.

Spot light Source- La lumière de cette source s'atténue dans toutes les directions. L'intensité de la lumière dépend de la distance entre l'objet et la source.

La classe nommée Light.Spot du forfait javafx.scene.effect représente la source lumineuse distante.

18 Point.Spot

En appliquant cet effet à un nœud, une lumière est simulée dessus, comme si elle était générée par une source lumineuse ponctuelle.

Point Light Source- La lumière de cette source s'atténue dans toutes les directions à partir d'un seul point. L'intensité de la lumière dépend de la distance entre l'objet et la source.

La classe nommée Point.Spot du package javafx.scene.effect représente la lumière ponctuelle.