JavaFx - 不想出现结束对话框

标签 java multithreading dialog javafx scene

我正在开发一个需要游戏结束对话框的游戏应用程序。 我尝试了多种方法,但无法开始工作。

我的游戏算法的方法在单独的线程上运行。 完成游戏后,在该线程中,我尝试调用(在 GameScene 的类中),例如 getChildren().add(endDialog) ,但什么也没发生。如果我将它添加到它的构造函数中,然后在游戏线程的末尾添加 getChildren.get(0).toFront(),仍然没有任何反应。

有什么建议吗?

编辑

找到了一种可行的方法,但并不那么完美:

   setOnMouseMoved(new EventHandler<MouseEvent>() {

        @Override
        public void handle(MouseEvent t) {
            if(ended) {
                getChildren().add(new EndDialog());
                getChildren().get(25).setOpacity(0.7);
            }
        }
    });

它唯一的问题是,当我玩完之后,我必须再移动一次鼠标才能出现对话框。

我应该如何及时捕获ending字段的值?

最佳答案

你用的是什么线?

在JavaFX中你必须使用Service classe 正确执行操作,并且不要卡住 GUI 内容。

在此服务上,您有一个 onSucceeded 字段,因此如果您监听它,您就可以在它完成工作后执行您想要的操作。

您可以拉索看看this

如果您想要漂亮的对话框,请查看 ControlFX

关于JavaFx - 不想出现结束对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20995244/

相关文章:

c# - 我可以使用字典元素作为锁定对象吗?

linux - 使用 Linux 对话框收集输入

java - imageviewtouch未显示在对话框中

android - 如何在 AlertDialog 中使用 ViewPager? - Android 4.0+

java - 将 Double 转换为OptionalDouble 的方法

java - 使用递归进行双字符串比较

c# - 异步调用方法和/或在其自己的线程上调用方法以提高性能

java - android studio 执行失败,因为 idk-1.8 的任务进程异常

java - 使用 spring webflux 替代 @Cacheable

python - 在线程中显示对话框