”;
On applying the light distant effect to a node, a light is simulated on it, as if it is being generated by a distant light source.
Distant Light Source − A source which is at a far distance from the node. In here, the light is attenuated in one direction from the source.
The class named Light.Distant of the package javafx.scene.effect represents the distant light source. This class contains two properties, which include −
-
azimuth − This property is of the type double and it represents the azimuth of the light.
-
elevation − This property is of the type double and it represents the elevation of the light.
Example
The following program is an example demonstrating the lighting effect of JavaFX. In this, the source of light is a distant source. Here, we are drawing a text “Welcome to Tutorialspoint” and a circle in a scene.
To these, we are applying the lighting effect, where the light is being emitted by a distant source.
Save this code in a file with the name DistantLightingExample.java.
import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.effect.Light; 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 DistantLightingExample 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 Light.Distant class Light.Distant light = new Light.Distant(); //Setting the properties of the light source light.setAzimuth(45.0); light.setElevation(30.0); //Instantiating the Lighting class Lighting lighting = new Lighting(); //Setting the source of the light lighting.setLight(light); //Applying the lighting effect to the text text.setEffect(lighting); //Applying the 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); } }
Compile and execute the saved java file from the command prompt using the following commands.
javac --module-path %PATH_TO_FX% --add-modules javafx.controls DistantLightingExample.java java --module-path %PATH_TO_FX% --add-modules javafx.controls DistantLightingExample
Output
On executing, the above program generates a JavaFX window as shown below.
”;