Java黑皮书15.24(动画:回摆)
package sample;
import javafx.animation.PathTransition;
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.Arc;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;
import javafx.util.Duration;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
Pane pane = new Pane();
Circle circle = new Circle(0, 0, 20);
circle.setFill(Color.BLACK);
Arc arc = new Arc(300, 150, 200, 150, 180, 180);
arc.setFill(Color.WHITE);
arc.setStroke(Color.BLACK);
pane.getChildren().add(arc);
pane.getChildren().add(circle);
PathTransition pathTransition = new PathTransition();
pathTransition.setDuration(Duration.millis(200));
pathTransition.setPath(arc);
pathTransition.setNode(circle);
pathTransition.setOrientation(PathTransition.OrientationType.ORTHOGONAL_TO_TANGENT);
pathTransition.setCycleCount(Timeline.INDEFINITE);
pathTransition.setAutoReverse(true);
pathTransition.play();
pane.setOnMousePressed(e -> pathTransition.pause());
pane.setOnMouseReleased(e -> pathTransition.play());
Scene scene = new Scene(pane, 600, 600);
primaryStage.setTitle("动画:回摆");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) { launch(args); }
}
运行结果
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/1761c36b056da8f610a9590e3ae40f5f.png)