步骤
- 先新建一个javafx工程
- 我比较习惯使用scene builder向Gridpanel中拖入一个矩形,并设置矩形的ID
- 在start方法中添加如下代码
package sample;
import javafx.animation.RotateTransition;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Group;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.layout.GridPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.scene.transform.Rotate;
import javafx.stage.Stage;
import javafx.util.Duration;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
Rectangle rect = (Rectangle) root.lookup("#rect");
//Instantiating RotateTransition class
RotateTransition rotate = new RotateTransition();
//围绕哪个轴旋转
rotate.setAxis(Rotate.Z_AXIS);
//旋转多少度
rotate.setByAngle(90);
//动画执行几次
rotate.setCycleCount(1);
//动画执行的持续时间
rotate.setDuration(Duration.millis(2000));
//把矩形加入到动画中
rotate.setNode(rect);
//开始动画
rotate.play();
primaryStage.setTitle("Hello World");
primaryStage.setScene(new Scene(root, 800, 300));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
参考
https://www.javatpoint.com/javafx-rotate-transition