Effets JavaFX - InnerShadow

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

La classe nommée InnerShadowdu package javafx.scene.effect représente l'effet d'ombre interne. Cette classe contient dix propriétés, qui sont -

  • color - Cette propriété est de type Couleur représentant la couleur de l'ombre.

  • blur type - Cette propriété est de BlurType et représente le type d'effet de flou utilisé pour brouiller l'ombre.

  • radius - Cette propriété est du type double et représente le rayon du noyau de flou d'ombre.

  • width - Cette propriété est du type double et représente la largeur du noyau de flou d'ombre.

  • height - Cette propriété est du type double et représente la hauteur du noyau de flou d'ombre.

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

  • spread- Cette propriété est du type double; il représente la propagation de l'ombre.

  • offsetX - Cette propriété est du type double, elle représente le décalage de l'ombre dans la direction x, en pixels.

  • offsetY - Cette propriété est du type double, elle représente le décalage de l'ombre dans la direction y en pixels.

  • choke- Cette propriété est de type double; il représente l'étranglement de l'ombre.

Exemple

Le programme suivant est un exemple illustrant l'effet d'ombre interne de JavaFX. Ici, nous dessinons un texte «Welcome to Tutorialspoint», et un cercle dans une scène.

À ceux-ci, nous appliquons l'effet d'ombre intérieure. Enregistrez ce code dans un fichier avec le nomInnerShadowEffectExample.java.

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.effect.InnerShadow; 
import javafx.scene.paint.Color; 
import javafx.scene.shape.Circle; 
import javafx.stage.Stage; 
import javafx.scene.text.Font; 
import javafx.scene.text.FontWeight; 
import javafx.scene.text.Text; 
         
public class InnerShadowEffectExample 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(50); 
      
      //Setting the text to be embedded. 
      text.setText("Welcome to Tutorialspoint");        
      
      //Setting the color of the text 
      text.setFill(Color.RED);   
       
      //Drawing a Circle 
      Circle circle = new Circle();         
      
      //Setting the center of the circle 
      circle.setCenterX(300.0f); 
      circle.setCenterY(160.0f); 
      
      //Setting the radius of the circle 
      circle.setRadius(100.0f); 
      
      //setting the fill color of the circle 
      circle.setFill(Color.CORNFLOWERBLUE);   
       
      //Instantiating the InnerShadow class  
      InnerShadow innerShadow = new InnerShadow(); 
      
      //Setting the offset values of the inner shadow 
      innerShadow.setOffsetX(4); 
      innerShadow.setOffsetY(4); 
      
      //Setting the color of the inner shadow 
      innerShadow.setColor(Color.GRAY);        
      
      //Applying inner shadow effect to the text 
      text.setEffect(innerShadow);      
      
      //Applying inner shadow effect to the circle 
      circle.setEffect(innerShadow); 
         
      //Creating a Group object  
      Group root = new Group(text,circle);   
               
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);
      
      //Setting title to the Stage 
      stage.setTitle("Inner shadow 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 InnerShadowEffectExample.java 
java InnerShadowEffectExample

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