javafx 增加加载动画
时间: 2024-09-26 07:01:34 浏览: 38
在JavaFX中,为了增加界面元素的加载动画,你可以利用`Transition`类或者`Timeline`来实现。`Transition`是一个更通用的过渡效果容器,而`Timeline`则更适合于线性的、时间驱动的动画序列。以下是创建简单加载动画的一个例子:
```java
import javafx.animation.Animation;
import javafx.animation.ScaleTransition;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class LoadAnimationExample {
public static void main(String[] args) {
Stage primaryStage = new Stage();
StackPane root = new StackPane();
// 创建一个初始状态的元素
Circle circle = new Circle(50);
root.getChildren().add(circle);
// 定义一个缩放动画
ScaleTransition scaleTransition = new ScaleTransition(Duration.seconds(1), circle);
scaleTransition.setFromX(0).setFromY(0); // 缩放开始时的大小
scaleTransition.setToX(2).setToY(2); // 缩放结束时的大小
scaleTransition.setAutoReverse(true); // 循环播放
// 设置动画完成后的回调,例如加载完成后移除动画元素
scaleTransition.setOnFinished(event -> {
root.getChildren().remove(circle);
primaryStage.setScene(new Scene(root));
});
// 开始动画
scaleTransition.play();
primaryStage.setTitle("Load Animation");
primaryStage.setScene(new Scene(root, 300, 300));
primaryStage.show();
}
}
```
在这个示例中,一个圆形元素先从原点开始缩小,然后自动反转到原来大小,给人一种加载完成的视觉效果。当动画结束后,原始元素会被移除并显示实际的内容。
阅读全文