Open In App

JavaFX | InnerShadow Class

Last Updated : 19 Jan, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

InnerShadow class is a part of JavaFX. InnerShadow class creates a high-level effect that renders a shadow inside the edges of the object with given specified radius, offset, choke, color and blur type. InnerShadow class inherits the Effect class.
Constructors of the class:
 

  1. InnerShadow(): Creates a new Object of InnerShadow.
  2. InnerShadow(BlurType blurType, Color color, double radius, double choke, double offsetX, double offsetY): Creates a new Object of InnerShadow with specified blurType, color, radius, choke, and offset.
  3. InnerShadow(double r, Color c): Creates a new Object of InnerShadow with specified radius and color.
  4. InnerShadow(double radius, double offsetX, double offsetY, Color color): Creates a new Object of InnerShadow with specified radius, offset and color.

Commonly Used Methods:
 

Method Explanation
getBlurType() Returns the blur type of the Effect.
setBlurType(BlurType v) Sets the blur type of the Effect.
getChoke() Returns the value of the property choke.
setChoke(double d) Sets the value of the property choke.
setColor(Color v) Sets the color of the effect.
getColor() Returns the color of the effect.
setInput(Effect v) Sets the value of property input.
getInput() Returns the value of property input.
setOffsetX(double v) Sets the value of offsetX of the effect.
setOffsetY(double v) Sets the value of offsetY of the effect.
getOffsetX() Sets the value of offsetX of the effect
getOffsetY() Sets the value of offsetY of the effect.
setRadius(double v) Sets the value of radius of the effect.
getRadius() Sets the value of radius of the effect.

Below programs illustrate the use of InnerShadow class: 

  • Java program to create a Circle and add InnerShadow effect to it: In this program we will create a Circle named circle and create a InnerShadow effect Inner_shadow with specified radius and color. The InnerShadow effect will be added to the circle using the setEffect() function and the circle will be added to the group. The circles will be translated to specific position in the stage using setTranslateX() and setTranslateY() function. The group will be added to the scene and the scene will be added to the stage.

Java




// Java program to create a Circle
// and add InnerShadow effect to it
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.stage.Stage;
import javafx.scene.image.*;
import javafx.scene.effect.*;
import java.io.*;
import javafx.scene.shape.Circle;
import javafx.scene.paint.Color;
import javafx.scene.Group;
 
public class Inner_shadow_1 extends Application {
 
    // launch the application
    public void start(Stage stage) throws Exception
    {
 
        // set title for the stage
        stage.setTitle("Inner_shadow example");
 
        // create a circle
        Circle circle = new Circle(50.0f, 50.0f, 50.0f);
 
        // set fill for circle
        circle.setFill(Color.BLUE);
 
        // translate to a position
        circle.setTranslateX(50.0f);
        circle.setTranslateY(50.0f);
 
        // create a sepia_tone effect
        InnerShadow sepia_tone = new InnerShadow(10, Color.RED);
 
        // set effect
        circle.setEffect(sepia_tone);
 
        // create a Group
        Group group = new Group(circle);
 
        // create a scene
        Scene scene = new Scene(group, 200, 200);
 
        // set the scene
        stage.setScene(scene);
 
        stage.show();
    }
 
    // Main Method
    public static void main(String args[])
    {
 
        // launch the application
        launch(args);
    }
}


Output:

  • Java program to create four Circles and add InnerShadow effect to it which are of different blur types and different values of choke, offsetX, offsetY and radius: In this program we will create the Circles named circle, circle1, circle2, circle3 and the InnerShadow effects named Inner_shadow1, Inner_shadow2, Inner_shadow3, Inner_shadow4 with specified radius, color, offsetX, offsetY, choke and blur type. The InnerShadow effect will be added to the circle using the setEffect() function and the circles will be added to the group. The circles will be translated to specific position in the stage using setTranslateX() and setTranslateY() function. The group will be added to the scene and the scene will be added to the stage.

Java




// Java program to create four Circles and add
// InnerShadow effect to it which are of different
// blur types and different values of choke,
// offsetX, offsetY and radius
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.stage.Stage;
import javafx.scene.image.*;
import javafx.scene.effect.*;
import java.io.*;
import javafx.scene.shape.Circle;
import javafx.scene.paint.Color;
import javafx.scene.Group;
 
public class Inner_shadow_2 extends Application {
 
    // launch the application
    public void start(Stage stage) throws Exception
    {
 
        // set title for the stage
        stage.setTitle("Inner_shadow example");
 
        // create a circle
        Circle circle = new Circle(0.0f, 0.0f, 25.0f, Color.RED);
        Circle circle1 = new Circle(0.0f, 0.0f, 25.0f, Color.RED);
        Circle circle2 = new Circle(0.0f, 0.0f, 25.0f, Color.RED);
        Circle circle3 = new Circle(0.0f, 0.0f, 25.0f, Color.RED);
 
        // translate to a position
        circle.setTranslateX(50.0f);
        circle.setTranslateY(50.0f);
 
        // translate to a position
        circle1.setTranslateX(150.0f);
        circle1.setTranslateY(50.0f);
 
        // translate to a position
        circle2.setTranslateX(50.0f);
        circle2.setTranslateY(150.0f);
 
        // translate to a position
        circle3.setTranslateX(150.0f);
        circle3.setTranslateY(150.0f);
 
        // create Inner_shadow effect
        InnerShadow Inner_shadow1 = new InnerShadow(BlurType.values()[0],
                                       Color.BLACK, 5, 3.0f, 2.0f, 2.0f);
 
        InnerShadow Inner_shadow2 = new InnerShadow(BlurType.values()[1],
                                       Color.BLACK, 5, 3.0f, 3.0f, 3.0f);
 
        InnerShadow Inner_shadow3 = new InnerShadow(BlurType.values()[2],
                                       Color.BLACK, 5, 4.0f, 3.0f, 3.0f);
 
        InnerShadow Inner_shadow4 = new InnerShadow(BlurType.values()[3],
                                       Color.BLACK, 5, 4.0f, 2.0f, 2.0f);
 
        // set effect
        circle.setEffect(Inner_shadow1);
        circle1.setEffect(Inner_shadow2);
        circle2.setEffect(Inner_shadow3);
        circle3.setEffect(Inner_shadow4);
 
        // create a Group
        Group group = new Group(circle, circle1,
                               circle2, circle3);
 
        // create a scene
        Scene scene = new Scene(group, 400, 400);
 
        // set the scene
        stage.setScene(scene);
 
        stage.show();
    }
 
    // Main Method
    public static void main(String args[])
    {
 
        // launch the application
        launch(args);
    }
}


Output:

Note: The above programs might not run in an online IDE. Please use an offline compiler.
Reference: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/effect/InnerShadow.html



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads