當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。