JavaFx实现图片轮播(一)

        发布完文章 一款Java实现的玩爆工具 ​​​​​​​后,最近好几个童鞋私信我如何实现图片轮播效果,下面就带大家来实现一下简单的图片轮播效果。

        JavaFX实现图片轮播可以使用ImageView和Timeline两个类。ImageView用于显示图片,Timeline用于控制图片切换的时间。下面给出一个简单的示例代码。

import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;

public class ImageSlider extends Application {

    private int currentIndex = 0;

    private ImageView[] images = {
            new ImageView(new Image("image1.jpg")),
            new ImageView(new Image("image2.jpg")),
            new ImageView(new Image("image3.jpg"))
    };

    @Override
    public void start(Stage primaryStage) {
        StackPane root = new StackPane();
        root.setAlignment(Pos.CENTER);
        root.getChildren().addAll(images);

        Timeline timeline = new Timeline(new KeyFrame(
                Duration.seconds(2), event -> {
                    currentIndex = (currentIndex + 1) % images.length;
                    for (int i = 0; i < images.length; i++) {
                        images[i].setVisible(i == currentIndex);
                    }
                }));

        timeline.setCycleCount(Timeline.INDEFINITE);
        timeline.play();

        Scene scene = new Scene(root, 800, 600);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

该代码中,首先定义了三个ImageView对象,用于显示三张图片。然后使用Timeline类来控制图片的切换,每隔两秒钟切换一次图片。其中currentIndex变量用于记录当前显示的图片的索引,通过循环遍历所有ImageView对象来设置它们的可见性来实现切换图片。最后将ImageView对象添加到StackPane中,并把StackPane作为场景的根节点显示。运行程序,就可以看到图片轮播的效果了。

猜你喜欢

转载自blog.csdn.net/m0_37649480/article/details/134923232