JavaFx - 结束对话框不希望出现

时间:2014-01-08 12:08:55

标签: 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);
            }
        }
    });

唯一的问题是,在我完成游戏后,我必须再次移动鼠标才能显示对话框。

我应该如何及时捕捉ended字段的值?

1 个答案:

答案 0 :(得分:2)

你使用了什么样的线程?

在JavaFX中你必须使用Service classe来正确地完成这些事情,并且不要将这些东西自由化。

在这项服务上你有一个onSucceeded字段,所以如果你听它就可以在你完成工作后做你想做的事。

你也可以看看this

如果您想要精彩的对话框,请查看ControlFX