发布完文章 一款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作为场景的根节点显示。运行程序,就可以看到图片轮播的效果了。