Javafx 简明教程
JavaFX - Fill Transition
在本教程的颜色部分,我们了解到 JavaFX 节点可以用各种颜色着色。但是,我们只学习了如何使用 setFill() 方法对对象进行着色;我们还可以使用动画更改形状的填充颜色。这种类型的动画称为填充过渡。
填充过渡是一种过渡,它改变 JavaFX 节点在指定时期内的颜色。这种过渡通常用于应用程序中进行测验:如果答案正确,选项变为“绿色”,否则变为“红色”。
Fill Transition
填充过渡在 JavaFX 节点上使用 FillTransition 类执行,该类属于 javafx.animation 包。此类包含各种属性,可用于在对象上设置动画。
-
duration − 此填充过渡的持续时间。
-
shape − 此填充过渡的目标形状。
-
fromValue − 指定此 FillTransition 的起始颜色值。
-
toValue − 指定此 FillTransition 的结束颜色值。
Example
以下是 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) {
//Drawing a Circle
Circle circle = new Circle();
//Setting the position of the circle
circle.setCenterX(300.0f);
circle.setCenterY(135.0f);
//Setting the radius of the circle
circle.setRadius(100.0f);
//Setting the color of the circle
circle.setFill(Color.BROWN);
//Setting the stroke width of the circle
circle.setStrokeWidth(20);
//Creating the fill Transition
FillTransition fillTransition = new FillTransition(Duration.millis(1000));
//Setting the shape for Transition
fillTransition.setShape(circle);
//Setting the from value of the transition (color)
fillTransition.setFromValue(Color.BLUEVIOLET);
//Setting the toValue of the transition (color)
fillTransition.setToValue(Color.CORAL);
//Setting the cycle count for the transition
fillTransition.setCycleCount(50);
//Setting auto reverse value to false
fillTransition.setAutoReverse(false);
//Playing the animation
fillTransition.play();
//Creating a Group object
Group root = new Group(circle);
//Creating a scene object
Scene scene = new Scene(root, 600, 300);
//Setting title to the Stage
stage.setTitle("Fill transition 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 --module-path %PATH_TO_FX% --add-modules javafx.controls FillTransitionExample.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls FillTransitionExample
执行后,上述程序会生成如下所示的 JavaFX 窗口。