Effets JavaFX - Éclairage (source par défaut)

L'effet d'éclairage est utilisé pour simuler une lumière provenant d'une source lumineuse. Il existe différents types de sources lumineuses qui comprennent -Point, Distant et Spot.

Si nous ne mentionnons aucune source pour l'éclairage, il utilise la source par défaut de JavaFX.

La classe nommée Lighting du package javafx.scene.effect représente l'effet d'éclairage, cette classe contient dix propriétés, qui sont -

  • bumpInput - Cette propriété est du type Effet et représente une entrée optionnelle de texture en relief pour l'effet d'éclairage.

  • contentInput - Cette propriété est du type Effet et représente une entrée de contenu dans l'effet d'éclairage.

  • diffuseConstant - Cette propriété est du type double et représente la constante diffuse de la lumière.

  • SpecularConstant - Cette propriété est du type double et représente la constante spéculaire de la lumière.

  • SpecularExponent - Cette propriété est du type double et représente l'exposant spéculaire de la lumière.

  • SurfaceScale - Cette propriété est du type double et représente le facteur d'échelle de surface de la lumière.

Exemple

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

À ceux-ci, nous appliquons l'effet d'éclairage. Ici, comme nous ne mentionnons aucune source, JavaFX utilise sa source par défaut.

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

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.effect.Lighting; 
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 LightingEffectExample 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 Lighting class  
      Lighting lighting = new Lighting(); 
  
      //Applying lighting effect to the text 
      text.setEffect(lighting);      
      
      //Applying lighting effect to the circle 
      circle.setEffect(lighting); 
         
      //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("Distant light 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 LightingEffectExample.java 
java LightingEffectExample

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