JavaFX 效果 - 反射

  • 简述

    在 JavaFX 中将反射效果应用于节点时,会在节点底部添加它的反射。
    类名为 Reflection 包裹的 javafx.scene.effect表示反射效果。这个类包含四个属性,它们是 -
    • topOpacity - 此属性为 double 类型,表示反射的最高极端不透明度值。
    • bottomOpacity - 此属性是表示反射的底部极值不透明度值的双精度型。
    • input − 此属性属于 Effect 类型,它表示反射效果的输入。
    • topOffset - 该属性是表示输入底部和反射顶部之间的距离的双精度型。
    • fraction-此属性是双精度型,表示在输出中可见的输入部分。分数值的范围是 0.0 到 1.0。
  • 例子

    以下程序是演示反射效果的示例。在这里,我们正在绘制填充了 DARKSEAGREEN 颜色的“Welcome to Tutorialspoint”文本并对其应用反射效果。
    将此代码保存在名称为的文件中 ReflectionEffectExample.java.
    
    import javafx.application.Application; 
    import javafx.scene.Group; 
    import javafx.scene.Scene; 
    import javafx.scene.effect.Reflection; 
    import javafx.scene.paint.Color; 
    import javafx.stage.Stage; 
    import javafx.scene.text.Font; 
    import javafx.scene.text.FontWeight; 
    import javafx.scene.text.Text; 
             
    public class ReflectionEffectExample extends Application { 
       @Override 
       public void start(Stage stage) {       
          //Creating a Text object 
          Text text = new Text();       
          
          //Setting font to the text 
          text.setFont(Font.font(null, FontWeight.BOLD, 40));       
          
          //setting the position of the text 
          text.setX(60); 
          text.setY(150); 
          
          //Setting the text to be embedded. 
          text.setText("Welcome to Tutorialspoint");       
          
          //Setting the color of the text 
          text.setFill(Color.DARKSEAGREEN);  
           
          //Instanting the reflection class 
          Reflection reflection = new Reflection(); 
          
          //setting the bottom opacity of the reflection 
          reflection.setBottomOpacity(0.0); 
          
          //setting the top opacity of the reflection 
          reflection.setTopOpacity(0.5); 
          
          //setting the top offset of the reflection 
          reflection.setTopOffset(0.0);
          
          //Setting the fraction of the reflection 
          reflection.setFraction(0.7); 
           
          //Applying reflection effect to the text 
          text.setEffect(reflection);          
             
          //Creating a Group object  
          Group root = new Group(text);   
                   
          //Creating a scene object 
          Scene scene = new Scene(root, 600, 300);  
          
          //Setting title to the Stage 
          stage.setTitle("Reflection effect example"); 
             
          //Adding scene to the stage 
          stage.setScene(scene); 
             
          //Displaying the contents of the stage 
          stage.show();         
       } 
       public static void main(String args[]){ 
          launch(args); 
       } 
    }       
    
    使用以下命令从命令提示符编译并执行保存的 java 文件。
    
    javac ReflectionEffectExample.java 
    java ReflectionEffectExample