JavaFX - 动画

JavaFX - 动画

JavaFX - 动画

一般来说,为对象设置动画意味着通过快速显示来创建其运动的错觉。在 JavaFX 中,可以通过随时间改变节点的属性来对节点进行动画处理。JavaFX 提供了一个名为javafx.animation的包。该包包含用于对节点进行动画处理的类。动画是所有这些类的基类。

使用 JavaFX,您可以应用动画(过渡),例如淡入淡出过渡、填充过渡、旋转过渡、缩放过渡、描边过渡、平移过渡、路径过渡、顺序过渡、暂停过渡、并行过渡等。

所有这些转换都由包javafx.animation中的各个类表示。

要将特定动画应用于节点,您必须遵循以下步骤 -

使用相应的类创建一个 require 节点。

实例化要应用的相应过渡(动画)类

设置过渡的属性和

最后使用Animation类的play()方法播放过渡。

在本章中,我们将讨论基本转换的示例(旋转、缩放、平移)。

旋转过渡

以下是演示 JavaFX 中旋转转换的程序。将此代码保存在名为RotateTransitionExample.java的文件中。

import javafx.animation.RotateTransition;

import javafx.application.Application;

import static javafx.application.Application.launch;

import javafx.scene.Group;

import javafx.scene.Scene;

import javafx.scene.paint.Color;

import javafx.scene.shape.Polygon;

import javafx.stage.Stage;

import javafx.util.Duration;

public class RotateTransitionExample extends Application {

@Override

public void start(Stage stage) {

//Creating a hexagon

Polygon hexagon = new Polygon();

//Adding coordinates to the hexagon

hexagon.getPoints().addAll(new Double[]{

200.0, 50.0,

400.0, 50.0,

450.0, 150.0,

400.0, 250.0,

200.0, 250.0,

150.0, 150.0,

});

//Setting the fill color for the hexagon

hexagon.setFill(Color.BLUE);

//Creating a rotate transition

RotateTransition rotateTransition = new RotateTransition();

//Setting the duration for the transition

rotateTransition.setDuration(Duration.millis(1000));

//Setting the node for the transition

rotateTransition.setNode(hexagon);

//Setting the angle of the rotation

rotateTransition.setByAngle(360);

//Setting the cycle count for the transition

rotateTransition.setCycleCount(50);

//Setting auto reverse value to false

rotateTransition.setAutoReverse(false);

//Playing the animation

rotateTransition.play();

//Creating a Group object

Group root = new Group(hexagon);

//Creating a scene object

Scene scene = new Scene(root, 600, 300);

//Setting title to the Stage

stage.setTitle("Rotate transition example ");

//Adding scene to the stage

stage.setScene(scene);

//Displaying the contents of the stage

stage.show();

}

public static void main(String args[]){

launch(args);

}

}

使用以下命令从命令提示符编译并执行保存的 java 文件。

javac RotateTransitionExample.java

java RotateTransitionExample

执行时,上述程序会生成一个 JavaFX 窗口,如下所示。

规模转变

以下是演示 JavaFX 中的尺度转换的程序。将此代码保存在名为ScaleTransitionExample.java的文件中。

import javafx.animation.ScaleTransition;

import javafx.application.Application;

import static javafx.application.Application.launch;

import javafx.scene.Group;

import javafx.scene.Scene;

import javafx.scene.paint.Color;

import javafx.scene.shape.Circle;

import javafx.stage.Stage;

import javafx.util.Duration;

public class ScaleTransitionExample extends Application {

@Override

public void start(Stage stage) {

//Drawing a Circle

Circle circle = new Circle();

//Setting the position of the circle

circle.setCenterX(300.0f);

circle.setCenterY(135.0f);

//Setting the radius of the circle

circle.setRadius(50.0f);

//Setting the color of the circle

circle.setFill(Color.BROWN);

//Setting the stroke width of the circle

circle.setStrokeWidth(20);

//Creating scale Transition

ScaleTransition scaleTransition = new ScaleTransition();

//Setting the duration for the transition

scaleTransition.setDuration(Duration.millis(1000));

//Setting the node for the transition

scaleTransition.setNode(circle);

//Setting the dimensions for scaling

scaleTransition.setByY(1.5);

scaleTransition.setByX(1.5);

//Setting the cycle count for the translation

scaleTransition.setCycleCount(50);

//Setting auto reverse value to true

scaleTransition.setAutoReverse(false);

//Playing the animation

scaleTransition.play();

//Creating a Group object

Group root = new Group(circle);

//Creating a scene object

Scene scene = new Scene(root, 600, 300);

//Setting title to the Stage

stage.setTitle("Scale transition example");

//Adding scene to the stage

stage.setScene(scene);

//Displaying the contents of the stage

stage.show();

}

public static void main(String args[]){

launch(args);

}

}

使用以下命令从命令提示符编译并执行保存的 java 文件。

javac ScaleTransitionExample.java

java ScaleTransitionExample

执行时,上述程序会生成一个 JavaFX 窗口,如下所示。

翻译过渡

以下是演示 JavaFX 中的 Translate Transition 的程序。将此代码保存在名为TranslateTransitionExample.java的文件中。

import javafx.animation.TranslateTransition;

import javafx.application.Application;

import javafx.scene.Group;

import javafx.scene.Scene;

import javafx.scene.paint.Color;

import javafx.scene.shape.Circle;

import javafx.stage.Stage;

import javafx.util.Duration;

public class TranslateTransitionExample extends Application {

@Override

public void start(Stage stage) {

//Drawing a Circle

Circle circle = new Circle();

//Setting the position of the circle

circle.setCenterX(150.0f);

circle.setCenterY(135.0f);

//Setting the radius of the circle

circle.setRadius(100.0f);

//Setting the color of the circle

circle.setFill(Color.BROWN);

//Setting the stroke width of the circle

circle.setStrokeWidth(20);

//Creating Translate Transition

TranslateTransition translateTransition = new TranslateTransition();

//Setting the duration of the transition

translateTransition.setDuration(Duration.millis(1000));

//Setting the node for the transition

translateTransition.setNode(circle);

//Setting the value of the transition along the x axis.

translateTransition.setByX(300);

//Setting the cycle count for the transition

translateTransition.setCycleCount(50);

//Setting auto reverse value to false

translateTransition.setAutoReverse(false);

//Playing the animation

translateTransition.play();

//Creating a Group object

Group root = new Group(circle);

//Creating a scene object

Scene scene = new Scene(root, 600, 300);

//Setting title to the Stage

stage.setTitle("Translate transition example");

//Adding scene to the stage

stage.setScene(scene);

//Displaying the contents of the stage

stage.show();

}

public static void main(String args[]){

launch(args);

}

}

使用以下命令从命令提示符编译并执行保存的 java 文件。

javac TranslateTransitionExample.java

java TranslateTransitionExample

执行时,上述程序会生成一个 JavaFX 窗口,如下所示。

除此之外,JavaFX 还提供了在节点上应用更多转换的类。以下是 JavaFX 支持的其他类型的转换。

影响节点属性的过渡:淡入淡出、填充、描边

涉及多个基本转换的转换顺序、并行、暂停

沿指定路径平移对象的过渡 路径过渡

相关推荐

佳能5D4与6D2对比:解析性能差异,哪个更适合你?佳能两款相机性能对比评测
墙纸一般几年一换?
365bet比分网

墙纸一般几年一换?

⏱️ 06-29 👁️ 7795
最后回答一遍,空调到底多久添加一次制冷剂?
365bet官方博客

最后回答一遍,空调到底多久添加一次制冷剂?

⏱️ 06-29 👁️ 2025
巴西男足保持连续23届进入世界杯决赛圈的记录,全球只此一家
Adobe Photoshop
365bet官方博客

Adobe Photoshop

⏱️ 06-28 👁️ 978
墙纸一般几年一换?
365bet比分网

墙纸一般几年一换?

⏱️ 06-29 👁️ 7795