Rumah  >  Artikel  >  Java  >  Gunakan API animasi JavaFX baharu dalam Java 13 untuk mencapai kesan animasi

Gunakan API animasi JavaFX baharu dalam Java 13 untuk mencapai kesan animasi

王林
王林asal
2023-07-30 12:38:181606semak imbas

Mencapai kesan animasi menggunakan API Animasi JavaFX baharu dalam Java 13

JavaFX ialah rangka kerja merentas platform untuk membina aplikasi klien yang kaya, yang menyediakan set perpustakaan grafik yang kaya dan komponen antara muka pengguna. API animasi dalam JavaFX membolehkan kami mencipta pelbagai kesan animasi dengan mudah untuk menjadikan aplikasi kami lebih jelas dan menarik. Artikel ini akan memperkenalkan API animasi JavaFX baharu dalam Java 13 dan menunjukkan cara menggunakannya untuk mencapai kesan animasi melalui contoh kod.

Pertama, kita perlu menambah kebergantungan perpustakaan JavaFX pada projek. Untuk Java 13 dan ke atas, JavaFX telah diasingkan daripada JDK dan menjadi perpustakaan bebas. Kami boleh memperkenalkan perpustakaan JavaFX melalui alat binaan seperti Maven atau Gradle, yang tidak akan diperkenalkan secara terperinci di sini.

Artikel ini akan menggunakan animasi bulatan biru ringkas yang bergerak dalam tetingkap sebagai contoh untuk menunjukkan cara menggunakan API animasi JavaFX. Pertama, kita perlu mencipta kelas utama aplikasi JavaFX, kodnya adalah seperti berikut:

import javafx.animation.TranslateTransition;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;
import javafx.util.Duration;

public class AnimationApp extends Application {

    @Override
    public void start(Stage primaryStage) {
        // 创建一个圆形对象
        Circle circle = new Circle(50, Color.BLUE);

        // 创建一个平移动画
        TranslateTransition translateTransition = new TranslateTransition(Duration.seconds(2), circle);

        // 设置平移动画的起始位置和结束位置
        translateTransition.setFromX(0);
        translateTransition.setToX(300);

        // 设置循环播放动画
        translateTransition.setCycleCount(TranslateTransition.INDEFINITE);
        translateTransition.setAutoReverse(true);

        // 创建一个布局容器
        StackPane root = new StackPane();
        root.getChildren().add(circle);

        // 创建一个场景
        Scene scene = new Scene(root, 400, 400);

        // 设置窗口标题和场景
        primaryStage.setTitle("Animation Demo");
        primaryStage.setScene(scene);

        // 显示窗口
        primaryStage.show();

        // 开始动画
        translateTransition.play();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

Dalam kod di atas, kita mula-mula mencipta objek bulat, mentakrifkan jejari dan warnanya. Seterusnya, kami mencipta kaedah animasi kuali TranslateTransition,和指定了动画的持续时间。通过设置起始位置和结束位置,我们可以实现圆形对象在窗口中的移动。通过设置setCycleCount方法可以让动画循环播放,并通过设置setAutoReverse方法让动画在每次播放结束后自动反向播放。接着,我们创建了一个布局容器StackPane,并添加了圆形对象作为其子节点。最后,我们创建了一个场景Scene,将布局容器作为其根节点,并设置了窗口的标题和场景。通过调用窗口的show方法来显示窗口,并通过调用动画的play untuk memulakan animasi.

Kod di atas hanyalah contoh mudah API animasi JavaFX juga menyediakan banyak fungsi lain, seperti animasi penskalaan, animasi putaran, animasi ketelusan, dll. Kita boleh mencapai kesan animasi yang lebih kompleks dan canggih dengan menetapkan pelbagai sifat dan parameter animasi.

Untuk meringkaskan, artikel ini memperkenalkan API animasi JavaFX baharu dalam Java 13 dan menunjukkan cara menggunakannya untuk mencapai kesan animasi melalui contoh kod mudah. Dengan menggunakan API animasi JavaFX dengan betul, kami boleh menambah kesan animasi yang jelas dan menarik pada aplikasi kami untuk meningkatkan pengalaman pengguna. Saya berharap pembaca dapat memanfaatkannya dan mengaplikasikannya kepada senario yang berkaitan dalam pembangunan sebenar.

Atas ialah kandungan terperinci Gunakan API animasi JavaFX baharu dalam Java 13 untuk mencapai kesan animasi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn