gpt4 book ai didi

JavaFX Stage 显示空场景

转载 作者:行者123 更新时间:2023-11-30 07:42:02 26 4
gpt4 key购买 nike

我一直在尝试从 Controller 打开一个新窗口以显示进度条:

    Stage fenetre = new Stage();
fenetre.initModality(Modality.APPLICATION_MODAL);

FXMLLoader loader;
Parent root;
Scene chargementBox;

loader = new FXMLLoader();
loader.setLocation(getClass().getResource("/views/Chargement.fxml"));
loader.load();
root = loader.getRoot();
chargementBox = new Scene(root);

fenetre.setTitle("Chargement");
fenetre.resizableProperty().set(false);
fenetre.setScene(chargementBox);
fenetre.show();

它显示窗口。但它是空的:

This is what it should show

This is what i got instead

我尝试了一切,我使用了其他 FXML 文件,窗口大小是正确的,但它总是空的。相同的代码适用于其他 Controller ,但不适用于此处。

请帮忙。没有异常(exception),也没有错误。谢谢

<小时/>

编辑:我找到了它不显示的原因,这是因为在代码的后面我有这个函数:Transport.send(message);阻止程序刷新我的场景并显示元素。有没有办法让我在后台或另一个线程中运行该行(我以前从未使用过线程。)再次感谢您的帮助。

最佳答案

要在后台线程上运行某些内容,您需要使用任务(可用一次)或服务(可重用)。

这是使用服务的方式:

Service<Void> service = new Service<Void>(){
@Override
protected Task<Void> createTask() {
return new Task<Void>() {
@Override
protected Void call() throws Exception {
//do your logic here.
return null;
}
};
}
};
service.setOnSucceeded(event -> {
//do some processing when complete
});
service.setOnFailed(event -> {
//do some processing when it failes
});

service.start();

关于JavaFX Stage 显示空场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34518244/

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