Java 动态效果图
时间: 2023-12-19 16:03:54 浏览: 39
Java 可以通过 Swing 或 JavaFX 等 GUI 框架实现动态效果图。以下是一个使用 JavaFX 实现的简单的动态效果图示例代码:
```java
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;
import javafx.util.Duration;
public class DynamicEffectExample extends Application {
private static final int WIDTH = 600;
private static final int HEIGHT = 400;
private static final int BALL_RADIUS = 20;
private static final int BALL_SPEED = 5;
private static final int BALL_DELAY = 10;
private Circle ball;
private int ballXDirection = BALL_SPEED;
private int ballYDirection = BALL_SPEED;
@Override
public void start(Stage primaryStage) throws Exception {
ball = new Circle(BALL_RADIUS, Color.RED);
ball.setLayoutX(WIDTH / 2);
ball.setLayoutY(HEIGHT / 2);
Pane root = new Pane(ball);
Timeline timeline = new Timeline(new KeyFrame(Duration.millis(BALL_DELAY), event -> update()));
timeline.setCycleCount(Timeline.INDEFINITE);
timeline.play();
Scene scene = new Scene(root, WIDTH, HEIGHT);
primaryStage.setScene(scene);
primaryStage.show();
}
private void update() {
if (ball.getLayoutX() < BALL_RADIUS || ball.getLayoutX() > WIDTH - BALL_RADIUS) {
ballXDirection *= -1;
}
if (ball.getLayoutY() < BALL_RADIUS || ball.getLayoutY() > HEIGHT - BALL_RADIUS) {
ballYDirection *= -1;
}
ball.setLayoutX(ball.getLayoutX() + ballXDirection);
ball.setLayoutY(ball.getLayoutY() + ballYDirection);
}
public static void main(String[] args) {
launch(args);
}
}
```
该示例代码实现了一个小球在窗口中来回移动的动态效果图。可以通过修改 BALL_SPEED 和 BALL_DELAY 的值来调整小球的速度和动画的流畅度。