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


JavaFX 类 InnerShadow用法及代码示例


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

该类的构造函数:

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

常用方法:


方法 说明
getBlurType() 返回效果的模糊类型。
setBlurType(BlurType v) 设置效果的模糊类型。
getChoke() 返回属性扼流圈的值。
setChoke(double d) 设置属性扼流圈的值。
setColor(Color v) 设置效果的颜色。
getColor() 返回效果的颜色。
setInput(Effect v) 设置属性输入的值。
getInput() 返回属性输入的值。
setOffsetX(double v) 设置效果的offsetX的值。
setOffsetY(double v) 设置效果的offsetY的值。
getOffsetX() 设置效果的offsetX值
getOffsetY() 设置效果的offsetY的值。
setRadius(double v) 设置效果的半径值。
getRadius() 设置效果的半径值。

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

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

    输出:

  2. Java程序创建四个Circle,并向其中添加InnerShadow效果,这些效果具有不同的模糊类型和不同的扼流圈,offsetX,offsetY和radius值:在此程序中,我们将创建具有指定半径,颜色,offsetX,offsetY,offsetY,扼流圈和模糊类型的名为Circles的Circles,circle1,circle2,circle3和名为Inner_shadow1,Inner_shadow2,Inner_shadow3,Inner_shadow4的InnerShadow效果。将使用setEffect()函数将InnerShadow效果添加到圆中,并将这些圆添加到组中。使用setTranslateX()和setTranslateY()函数,可以将圆圈转换到舞台中的特定位置。该组将被添加到场景,该场景将被添加到舞台。
    // Java program to create four Circles and add  
    // InnerShadow effect to it which are of different 
    // blur types and diiferent 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



相关用法


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