Effets JavaFX - 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.effectreprésente l'effet de réflexion. Cette classe contient quatre propriétés, qui sont -

  • topOpacity - Cette propriété est de type double représentant la valeur d'opacité extrême supérieure de la réflexion.

  • bottomOpacity - Cette propriété est de type double représentant la valeur d'opacité extrême inférieure de la réflexion.

  • input - Cette propriété est du type Effet et représente une entrée pour l'effet de réflexion.

  • topOffset - Cette propriété est de type double représentant la distance entre le bas de l'entrée et le haut de la réflexion.

  • fraction−Cette propriété est de type double représentant la fraction d'entrée visible dans la sortie. La plage de la valeur de fraction est comprise entre 0,0 et 1,0.

Exemple

Le programme suivant est un exemple démontrant l'effet de réflexion. Ici, nous dessinons le texte «Welcome to Tutorialspoint» rempli de couleur DARKSEAGREEN et lui appliquons l'effet de réflexion.

Enregistrez ce code dans un fichier avec le nom ReflectionEffectExample.java.

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.effect.Reflection; 
import javafx.scene.paint.Color; 
import javafx.stage.Stage; 
import javafx.scene.text.Font; 
import javafx.scene.text.FontWeight; 
import javafx.scene.text.Text; 
         
public class ReflectionEffectExample extends Application { 
   @Override 
   public void start(Stage stage) {       
      //Creating a Text object 
      Text text = new Text();       
      
      //Setting font to the text 
      text.setFont(Font.font(null, FontWeight.BOLD, 40));       
      
      //setting the position of the text 
      text.setX(60); 
      text.setY(150); 
      
      //Setting the text to be embedded. 
      text.setText("Welcome to Tutorialspoint");       
      
      //Setting the color of the text 
      text.setFill(Color.DARKSEAGREEN);  
       
      //Instanting the reflection class 
      Reflection reflection = new Reflection(); 
      
      //setting the bottom opacity of the reflection 
      reflection.setBottomOpacity(0.0); 
      
      //setting the top opacity of the reflection 
      reflection.setTopOpacity(0.5); 
      
      //setting the top offset of the reflection 
      reflection.setTopOffset(0.0);
      
      //Setting the fraction of the reflection 
      reflection.setFraction(0.7); 
       
      //Applying reflection effect to the text 
      text.setEffect(reflection);          
         
      //Creating a Group object  
      Group root = new Group(text);   
               
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);  
      
      //Setting title to the Stage 
      stage.setTitle("Reflection effect example"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show();         
   } 
   public static void main(String args[]){ 
      launch(args); 
   } 
}

Compilez et exécutez le fichier java enregistré à partir de l'invite de commande à l'aide des commandes suivantes.

javac ReflectionEffectExample.java 
java ReflectionEffectExample

Lors de l'exécution, le programme ci-dessus génère une fenêtre JavaFX comme indiqué ci-dessous.