JavaFX - 动画

JavaFX - 动画

上一节: JavaFX - 剪切转换

上一节

下一节: JavaFX - 几何转换 动画

下一节

JavaFX - 动画

简述

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

使用 JavaFX,您可以应用动画(过渡),例如 Fade Transition, Fill Transition, Rotate Transition, Scale Transition, Stroke Transition, Translate Transition, Path Transition, Sequential Transition, Pause Transition, Parallel Transition, 等等。

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

要将特定动画应用于节点,您必须按照以下步骤操作 -

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

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

设置过渡的属性和

最后使用 play() 的方法 Animation 班级。

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

旋转过渡

以下是在 JavaFX 中演示 Rotate Transition 的程序。将此代码保存在名称为的文件中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 中演示 Scale Transition 的程序。将此代码保存在名称为的文件中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 支持的其他类型的转换。

影响节点属性的过渡Fade、Fill、Stroke

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

Transition 沿指定路径平移对象Path Transition

上一节: JavaFX - 剪切转换

上一节

下一节: JavaFX - 几何转换 动画

下一节

查看笔记 分享笔记

笔记内容:

称呼:

Email:

站点:

分享笔记 重置

分类导航

前端

Ajax 教程

Angular 教程

Aurelia 教程

Bootstrap 教程

ChartJS 教程

CSS 教程

ES6 教程

FontAwesome 教程

HTML 教程

HTML 字符集 教程

HTML 游戏 教程

JavaScript 教程

jQuery 教程

Less 教程

React 教程

Sass 教程

Stylus 教程

TypeScript 教程

Unity 教程

Vue.js 教程

WebAssembly 教程

XAML 教程

颜色 教程

服务端

C# 教程

C++ 教程

COBOL 教程

C语言 教程

Fortran 教程

Go 教程

Groovy 教程

Java 教程

JSP 教程

JVM 教程

Kotlin 教程

Lisp 教程

Lua 教程

Node.js 教程

Pascal 教程

Perl 教程

PHP 教程

Python 教程

Python 3 教程

Ruby 教程

Rust 教程

Scala 教程

Spring 教程

Spring Boot 教程

Spring Cloud 教程

VB.Net 教程

移动端

Android 教程

IOS 教程

Objective-C 教程

React Native 教程

Swift 教程

小程序 教程

数据库

Access 教程

DB2 教程

Mariadb 教程

Memcached 教程

MongoDB 教程

MySQL 教程

Neo4j 教程

PL/SQL 教程

PostgreSQL 教程

Redis 教程

SQL 教程

SQL Server 教程

SQLite 教程

T-SQL 教程

数据格式

Jackson 教程

JSON 教程

SVG 教程

XML 教程

开发工具

ActiveMQ 教程

Ant 教程

Apache HttpClient 教程

Apache POI PPT 教程

AWS 教程

Docker 教程

ElasticSearch 教程

ExpressJS 教程

GIT 教程

GitLab 教程

Google Maps 教程

Gradle 教程

Java NIO 教程

JavaFX 教程

JavaMail 教程

JDBC 教程

jMeter 教程

JPA 教程

jsoup 教程

Junit 教程

KoaJS 教程

Kubernetes 教程

Log4j 教程

Logstash 教程

Lucene 教程

Makefile 教程

Maven 教程

RESTful 教程

Sed 教程

SEO 教程

Servlet 教程

SLF4J 教程

Socket.IO 教程

Struts 教程

SVN 教程

TestNG 教程

UML 教程

UNIX / LINUX 教程

WebSocket 教程

WPF 教程

xStream 教程

区块链 教程

数据处理

Flink 教程

Flume 教程

Hadoop 教程

Hbase 教程

Hive 教程

Kafka 教程

Kibana 教程

MapReduce 教程

MATLAB 教程

MyBatis 教程

Pig 教程

R语言 教程

Solr 教程

Spark 教程

Storm 教程

Zookeeper 教程

大数据分析 教程

数据仓库 教程

数据挖掘 教程

计算机基础

HTTP 教程

IPv4 教程

IPv6 教程

Ubantu 教程

WebServices 教程

嵌入式系统 教程

操作系统 教程

数据结构和算法 教程

汇编语言 教程

物联网 教程

电子电路基础 教程

编译器设计 教程

网站开发 教程

计算机 教程

计算机基础 教程

计算机网络 教程

设计模式 教程

AI

CNTK 教程

Keras 教程

PyTorch 教程

TensorFlow 教程

人工智能 教程

机器学习 教程

Python 技术

Django 教程

Flask 教程

NumPy 教程

Pandas 教程

Pillow 教程

PyGTK 教程

PyQt5 教程

PySpark 教程

pytest 教程

Python -数据科学 教程

Python MySQL 教程

Python 取证 教程

Python 数据结构 教程

Python 文本处理 教程

Python 网络编程 教程

Python 网页抓取 教程

Python 设计模式 教程

RxPY 教程

SciPy 教程

Seaborn 教程

SymPy 教程

wxPython 教程

框架

Laravel 教程

Web 图标Icon 教程

Web2py 教程

WebGL 教程

WebRTC 教程

WordPress 教程

Yii 教程

Zend Framework 教程

SAP

Crystal Reports 教程

相关推荐

2024年中国广告行业现状及发展趋势分析 前三季度广告业保持较快增长
网页保存方式(完整保存)总结
365bet有手机版吗

网页保存方式(完整保存)总结

06-29 👁️ 9458
十大好用的虚拟光驱软件 虚拟光驱工具有哪些 虚拟光驱软件推荐→MAIGOO生活榜
肇庆:18家酒店与住宿供选择
365bet有手机版吗

肇庆:18家酒店与住宿供选择

06-30 👁️ 6948
【網紅試法】VOOV直播App去年殺入香港 網紅一晚賺10萬點揾錢?
wps表格工具在哪里怎么调出来教程