JavaFX - 几何过渡

淡入淡出过渡

以下是演示 JavaFX 中淡入淡出过渡的程序。将此代码保存在名为 FadeTransitionExample.java 的文件中。

import javafx.animation.FadeTransition; 
import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.paint.Color; 
import javafx.scene.shape.Circle; 
import javafx.stage.Stage; 
import javafx.util.Duration; 
         
public class FadeTransitionExample extends Application { 
   @Override 
   public void start(Stage stage) {
        //绘制一个圆圈
        Circle circle = new Circle();
        
        //设置圆圈的位置
        circle.setCenterX(300.0f);
        circle.setCenterY(135.0f);
        
        //设置圆圈的半径
        circle.setRadius(100.0f);
        
        //设置圆圈的颜色
        circle.setFill(Color.BROWN);
        
        //设置圆圈的描边宽度
        circle.setStrokeWidth(20);
        
        //创建淡入淡出过渡
        FadeTransition fadeTransition = new FadeTransition(Duration.millis(1000));
        
        //设置过渡的节点
        fadeTransition.setNode(circle);
        
        //设置过渡的属性 fromValue(不透明度)
        fadeTransition.setFromValue(1.0);
        
        //设置过渡的 toValue 属性(不透明度)
        fadeTransition.setToValue(0.3);
        
        //设置过渡的循环次数
        fadeTransition.setCycleCount(50);
        
        //将自动反转值设置为 false
        fadeTransition.setAutoReverse(false);
        
        //播放动画
        fadeTransition.play();
        
        //创建一个 Group 对象
        Group root = new Group(circle);
        
        //创建一个 scene 对象
        Scene scene = new Scene(root, 600, 300);
        
        //设置 Stage 的标题
        stage.setTitle("淡入淡出过渡示例");
        
        //将 scene 添加到舞台(Stage)
        stage.setScene(scene);
        
        //显示舞台(Stage)的内容
        stage.show();
   }      
   public static void main(String args[]){ 
      launch(args); 
   } 
}

使用以下命令从命令提示符编译并执行保存的 java 文件。

javac FadeTransitionExample.java 
java FadeTransitionExample

执行时,上述程序将生成一个 JavaFX 窗口,如下所示。

淡入淡出过渡

填充过渡

以下是演示 JavaFX 中填充过渡的程序。将此代码保存在名为 FillTransitionExample.java 的文件中。

import javafx.animation.FillTransition; 
import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.paint.Color; 
import javafx.scene.shape.Circle; 
import javafx.stage.Stage; 
import javafx.util.Duration; 
         
public class FillTransitionExample extends Application { 
   @Override 
   public void start(Stage stage) {
        //绘制一个圆圈
        Circle circle = new Circle();
        
        //设置圆圈的位置
        circle.setCenterX(300.0f);
        circle.setCenterY(135.0f);
        
        //设置圆圈的半径
        circle.setRadius(100.0f);
        
        //设置圆圈的颜色
        circle.setFill(Color.BROWN);
        
        //设置圆圈的描边宽度
        circle.setStrokeWidth(20);
        
        //创建填充过渡
        FillTransition fillTransition = new FillTransition(Duration.millis(1000));
        
        //设置过渡的形状
        fillTransition.setShape(circle);
        
        //设置过渡的起始值(颜色)
        fillTransition.setFromValue(Color.BLUEVIOLET);
        
        //设置过渡的 toValue(颜色)
        fillTransition.setToValue(Color.CORAL);
        
        //设置过渡的循环次数
        fillTransition.setCycleCount(50);
        
        //将自动反转值设置为 false
        fillTransition.setAutoReverse(false);
        
        //播放动画
        fillTransition.play();
        
        //创建一个 Group 对象
        Group root = new Group(circle);
        
        //创建一个 scene 对象
        Scene scene = new Scene(root, 600, 300);
        
        //设置 Stage 的标题
        stage.setTitle("填充过渡示例");
        
        //将场景添加到舞台(Stage)
        stage.setScene(scene);
        
        //显示舞台(Stage)的内容
        stage.show();
   }   
   public static void main(String args[]){ 
      launch(args); 
   } 
}

使用以下命令从命令提示符编译并执行保存的 java 文件。

javac FillTransitionExample.java 
java FillTransitionExample

执行时,上述程序将生成一个 JavaFX 窗口,如下所示。

填充过渡

描边过渡

以下是演示 JavaFX 中 Stoke Transition 的程序。将此代码保存在名为 StrokeTransitionExample.java 的文件中。

import javafx.animation.StrokeTransition; 
import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.paint.Color; 
import javafx.scene.shape.Circle; 
import javafx.stage.Stage; 
import javafx.util.Duration; 
         
public class StrokeTransitionExample extends Application { 
   @Override 
   public void start(Stage stage) {
        //绘制一个圆圈
        Circle circle = new Circle();
        
        //设置圆圈的位置
        circle.setCenterX(300.0f);
        circle.setCenterY(135.0f);
        
        //设置圆圈的半径
        circle.setRadius(100.0f);
        
        //设置圆圈的颜色
        circle.setFill(Color.BROWN);
        
        //设置圆圈的描边宽度
        circle.setStrokeWidth(20);
        
        //创建描边过渡
        StrokeTransition strokeTransition = new StrokeTransition();
        
        //设置过渡的持续时间
        strokeTransition.setDuration(Duration.millis(1000));
        
        //设置过渡的形状
        strokeTransition.setShape(circle);
        
        //设置过渡的 fromValue 属性(颜色)
        strokeTransition.setFromValue(Color.BLACK);
        
        //设置过渡的 toValue 属性(颜色)
        strokeTransition.setToValue(Color.BROWN);
        
        //设置过渡的循环计数
        strokeTransition.setCycleCount(50);
        
        //将自动反转值设置为 false
        strokeTransition.setAutoReverse(false);
        
        //播放动画
        strokeTransition.play();
        
        //创建 Group 对象
        Group root = new Group(circle);
        
        //创建 scene 对象
        Scene scene = new Scene(root, 600, 300);
        
        //设置 Stage 的标题
        stage.setTitle("Stroke transition example");
        
        //将 scene 添加到 stage
        stage.setScene(scene);
        
        //显示 stage 的内容
        stage.show();
   }     
   public static void main(String args[]){ 
      launch(args); 
   } 
}

使用以下命令从命令提示符编译并执行保存的 java 文件。

javac StrokeTransitionExample.java 
java StrokeTransitionExample 

执行时,上述程序将生成一个 JavaFX 窗口,如下所示。

描边过渡

javafx_animations.html