利用javafx制作一个雨刮器动图
时间: 2023-07-04 15:03:29 浏览: 100
flash制作 下雨
以下是一个简单的雨刮器动画的 JavaFX 代码示例:
```java
import javafx.animation.PathTransition;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.shape.Ellipse;
import javafx.scene.shape.Path;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
import javafx.util.Duration;
public class RainScraper extends Application {
@Override
public void start(Stage primaryStage) {
// 创建一个 Group 作为场景根节点
Group root = new Group();
// 创建一个长方形,表示雨刮器底部
Rectangle scraper = new Rectangle(50, 200, 100, 10);
scraper.setFill(Color.BLACK);
root.getChildren().add(scraper);
// 创建一个椭圆,表示雨刮器头部
Ellipse head = new Ellipse(100, 190, 30, 10);
head.setFill(Color.WHITE);
root.getChildren().add(head);
// 创建一个圆形,表示雨滴
Circle raindrop = new Circle(0, 0, 5, Color.BLUE);
// 创建一个 Path,表示雨刮器运动轨迹
Path path = new Path();
path.getElements().add(new PathElement.MoveTo(50, 205));
path.getElements().add(new PathElement.LineTo(150, 205));
path.getElements().add(new PathElement.LineTo(150, 195));
path.getElements().add(new PathElement.LineTo(50, 195));
path.getElements().add(new PathElement.ClosePath());
// 创建一个 PathTransition,表示雨滴在雨刮器上运动的动画
PathTransition pathTransition = new PathTransition(Duration.seconds(2), path, raindrop);
pathTransition.setCycleCount(PathTransition.INDEFINITE); // 循环播放
pathTransition.setAutoReverse(false); // 不反向播放
// 将雨滴添加到场景中,并启动动画
root.getChildren().add(raindrop);
pathTransition.play();
// 创建一个 Scene,将根节点作为参数传入
Scene scene = new Scene(root, 200, 220);
// 将场景设置到舞台上,并显示
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
```
这个程序会生成一个简单的雨刮器动画,其中雨滴会在雨刮器上来回移动。你可以根据需要自己调整各个形状的位置、大小和颜色等属性。
阅读全文