📜  JavaFX |内阴影类

📅  最后修改于: 2022-05-13 01:55:47.402000             🧑  作者: Mango

JavaFX |内阴影类

InnerShadow 类是 JavaFX 的一部分。 InnerShadow 类创建了一个高级效果,它使用给定的指定半径、偏移量、阻塞、颜色和模糊类型在对象的边缘内渲染阴影。 InnerShadow 类继承了 Effect 类。
类的构造函数:

  1. InnerShadow() :创建一个新的 InnerShadow 对象。
  2. InnerShadow(BlurType blurType, Color color, double radius, double choke, double offsetX, double offsetY) :使用指定的 blurType、颜色、半径、choke 和偏移量创建 InnerShadow 的新对象。
  3. InnerShadow(double r, Color c) :创建具有指定半径和颜色的 InnerShadow 新对象。
  4. InnerShadow(double radius, double offsetX, double offsetY, Color color) :使用指定的半径、偏移量和颜色创建一个新的 InnerShadow 对象。

常用方法:

MethodExplanation
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.

下面的程序说明了 InnerShadow 类的使用:

  • 创建圆形并为其添加 InnerShadow 效果的Java程序:在此程序中,我们将创建一个名为circle的圆形,并创建一个具有指定半径和颜色的 InnerShadow 效果Inner_shadow 。 InnerShadow 效果将使用setEffect()函数添加到圆中,并且圆将添加到组中。圆圈将使用setTranslateX()setTranslateY()函数转换到舞台中的特定位置。组将添加到场景中,场景将添加到舞台中。
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);
    }
}


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);
    }
}


输出:

  • Java程序创建四个圆并为其添加 InnerShadow 效果,它们具有不同的模糊类型和不同的 choke、offsetX、offsetY 和 radius 值:在这个程序中,我们将创建名为circlecircle1circle2circle3的圆和 InnerShadow 效果命名为Inner_shadow1Inner_shadow2Inner_shadow3Inner_shadow4 ,具有指定的半径、颜色、offsetX、offsetY、choke 和模糊类型。 InnerShadow 效果将使用setEffect()函数添加到圆圈中,并且圆圈将添加到组中。圆圈将使用setTranslateX()setTranslateY()函数转换到舞台中的特定位置。组将添加到场景中,场景将添加到舞台中。

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);
    }
}

输出:

注意:上述程序可能无法在在线 IDE 中运行。请使用离线编译器。
参考: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/effect/InnerShadow.html