java实现动画的代码
时间: 2024-04-14 20:09:43 浏览: 6
Java实现动画的方式有很多,最常用的方式是使用JavaFX或Swing。以下是使用JavaFX实现动画的示例代码:
```java
import javafx.animation.Animation;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;
import javafx.util.Duration;
public class AnimationDemo extends Application {
private static final double RADIUS = 50;
private Circle circle;
@Override
public void start(Stage primaryStage) {
// 创建圆形
circle = new Circle(RADIUS);
circle.setTranslateX(RADIUS);
circle.setTranslateY(RADIUS);
// 创建时间轴
Timeline timeline = new Timeline(
new KeyFrame(Duration.seconds(0.0), event -> moveRight()),
new KeyFrame(Duration.seconds(1.0), event -> moveDown()),
new KeyFrame(Duration.seconds(2.0), event -> moveLeft()),
new KeyFrame(Duration.seconds(3.0), event -> moveUp())
);
timeline.setCycleCount(Animation.INDEFINITE);
timeline.play();
// 创建场景
Pane root = new Pane(circle);
Scene scene = new Scene(root, 400, 400);
// 显示窗口
primaryStage.setScene(scene);
primaryStage.show();
}
// 向右移动
private void moveRight() {
circle.setTranslateX(circle.getTranslateX() + 10);
}
// 向下移动
private void moveDown() {
circle.setTranslateY(circle.getTranslateY() + 10);
}
// 向左移动
private void moveLeft() {
circle.setTranslateX(circle.getTranslateX() - 10);
}
// 向上移动
private void moveUp() {
circle.setTranslateY(circle.getTranslateY() - 10);
}
public static void main(String[] args) {
launch(args);
}
}
```
这个示例代码中,创建了一个圆形,并使用时间轴(Timeline)实现了圆形的运动动画。时间轴中包含了四个关键帧(KeyFrame),每个关键帧都指定了圆形在不同方向上的移动方法和时间点。同时,时间轴设置为循环播放,从而形成了持续的动画效果。
你可以在自己的开发环境中复制以上代码并运行,看看效果。