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. |