gpt4 book ai didi

java - 如何使用JavaFX定期显示一个图像

转载 作者:行者123 更新时间:2023-12-04 10:24:33 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





JavaFX periodic background task

(5 个回答)


去年关闭。




我正在学习 JavaFX。我想在几秒钟后一个一个地显示一些图标。我的代码不起作用。我已经写了一些代码。和图标存储在名为 的单独文件夹中。图片 .

public class Main extends Application {
ImageView imv;
Scene scene;

@Override
public void start(Stage primarystage) {
gp=new GridPane();
gp.setPadding(new Insets(0, 10, 10, 10));
...
gp.setVgap(0);
gp.setHgap(5);

imv=new ImageView();

// logic for displaying images

scene=new Scene(gp, 450, 300, Color.TRANSPARENT);

primarystage.setScene(scene);
primarystage.setTitle("WINDOW");
primarystage.show();
}
public static void main(String[] args) {
launch(args);
}
}

我在网上找不到正确的答案。我想知道它是如何完成的逻辑,我还需要知道什么。因为我可以轻松显示单个图像。但我不知道如何一张一张地显示多张图片。

最佳答案

好吧,我已经为你试过了。我不知道你到底在找什么,但这段代码至少会给你一些想法。我做了一些假设。您在同一目录下有一个名为 images 的文件夹,其中所有图标(要显示)为 1.png、2.png、3.png 等。我正在使用 Netbeans 8.2,它将自动从相应的包中导入必要的类。

import javafx.application.Application;
import javafx.concurrent.Task;
...
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
...

public class Main extends Application {

ImageView imv;
Label label;
String file="";

GridPane gridPane;
Scene scene;
Task<Void> slideShow;

@Override
public void start(Stage primarystage) {
gridPane=new GridPane();
gridPane.setPadding(new Insets(0, 10, 10, 10));

// business logic for slide show
startSlideShow();

imv=new ImageView();

label = new Label();
label.setGraphic(imv);

gridPane.add(label, 5, 0, 1, 1);

scene=new Scene(gridPane, 450, 300, Color.TRANSPARENT);

primarystage.setScene(scene);
primarystage.show();

// spawning a new thread for this task
new Thread(slideShow).start();
}

public void startSlideShow() {
slideShow= new Task<Void>() {
@Override
protected Void call() {
int i = 1;
while (true) {
try {
Thread.sleep(1000);
updateMessage(i + ".png");
} catch (Exception e) {
}
i++;
}
}
};
task1.messageProperty().addListener((observable, oldValue, newValue) -> {
Image image = new Image(getClass().getResourceAsStream("images/" + newValue));
imv.setImage(image);
});
}

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

希望这会起作用您可以根据您的要求自定义代码。

关于java - 如何使用JavaFX定期显示一个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60681024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com