当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JavaFX 类 Shadow用法及代码示例


影子类是JavaFX的一部分。阴影类创建具有模糊边的单色阴影。阴影是黑色的(默认情况下),可以与原始阴影组合以创建阴影。可以在原始颜色中添加不同颜色的阴影以创建发光效果。阴影类继承了效果类。

该类的构造函数:

  1. Shadow():创建一个新的Shadow对象。
  2. Shadow(BlurType t, Color c, double r):使用指定的模糊类型,颜色和半径创建一个新的阴影对象。
  3. Shadow(double r, Color c):使用半径和颜色创建一个新的阴影对象。

常用方法:


方法 说明
getBlurType() 返回效果的模糊类型。
getColor() 返回效果的颜色。
getInput() 返回属性输入的值。
getRadius() 返回阴影效果的半径。
setBlurType(BlurType v) 设置阴影效果的模糊类型。
setColor(Color v) 设置阴影效果的颜色。
setInput(Effect v) 设置属性输入的值。
setRadius(double v) 设置阴影效果的半径。

以下示例程序旨在说明Shadow类的用法:

  1. Java程序创建一个Circle并为其添加Shadow效果:在此程序中,我们将创建一个名为circle的Circle,并创建具有指定半径和颜色的Shadow效果阴影。将使用setEffect()函数将阴影效果添加到圆中,并将该圆添加到组中。使用setTranslateX()和setTranslateY()函数将圆圈转换到舞台中的特定位置。该组将被添加到场景,该场景将被添加到舞台。
    // Java program to create a Circle  
    // and add Shadow 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 shadow_1 extends Application { 
      
        // launch the application 
        public void start(Stage stage) throws Exception 
        { 
      
            // set title for the stage 
            stage.setTitle("shadow example"); 
      
            // create a circle 
            Circle circle = new Circle(50.0f, 50.0f, 25.0f); 
      
            // translate to a position 
            circle.setTranslateX(50.0f); 
            circle.setTranslateY(50.0f); 
      
            // create a shadow effect 
            Shadow shadow = new Shadow(10, Color.RED); 
      
            // set effect 
            circle.setEffect(shadow); 
      
            // 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); 
        } 
    }

    输出:

  2. Java程序创建四个Circle并向其添加Shadow效果(具有不同的BlurType):在此程序中,我们将创建一个名为circle,circle1,circle2,circle3的Circles,并创建一个具有指定半径,颜色和模糊类型的Shadow1,shadow2,shadow3,shadow4阴影效果。使用setEffect()函数将阴影效果添加到圆中,并将圆添加到组中。使用setTranslateX()和setTranslateY()函数将圆平移到舞台中的特定位置。该组将被添加到场景,该场景将被添加到舞台。
    // Java program to create four Circles and add Shadow 
    // effect to it which are of different BlurType 
    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 shadow_2 extends Application { 
      
        // launch the application 
        public void start(Stage stage) throws Exception 
        { 
      
            // set title for the stage 
            stage.setTitle("shadow example"); 
      
            // create a circle 
            Circle circle = new Circle(0.0f, 0.0f, 25.0f); 
            Circle circle1 = new Circle(0.0f, 0.0f, 25.0f); 
            Circle circle2 = new Circle(0.0f, 0.0f, 25.0f); 
            Circle circle3 = new Circle(0.0f, 0.0f, 25.0f); 
      
            // 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 shadow effect 
            Shadow shadow1 = new Shadow(BlurType.values()[0], Color.BLUE, 10); 
            Shadow shadow2 = new Shadow(BlurType.values()[1], Color.BLUE, 10); 
            Shadow shadow3 = new Shadow(BlurType.values()[2], Color.BLUE, 10); 
            Shadow shadow4 = new Shadow(BlurType.values()[3], Color.BLUE, 10); 
      
            // set effect 
            circle.setEffect(shadow1); 
            circle1.setEffect(shadow2); 
            circle2.setEffect(shadow3); 
            circle3.setEffect(shadow4); 
      
            // create a Group 
            Group group = new Group(circle, circle1, circle2, circle3); 
      
            // 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); 
        } 
    }

    输出:

注意:以上程序可能无法在在线IDE中运行。请使用离线编译器。

参考:https://docs.oracle.com/javase/8/javafx/api/javafx/scene/effect/Shadow.html



相关用法


注:本文由纯净天空筛选整理自andrew1234大神的英文原创作品 JavaFX | Shadow Class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。