Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFx-结束对话框don';我不想出现_Java_Multithreading_Dialog_Javafx_Scene - Fatal编程技术网

JavaFx-结束对话框don';我不想出现

JavaFx-结束对话框don';我不想出现,java,multithreading,dialog,javafx,scene,Java,Multithreading,Dialog,Javafx,Scene,我正在开发一个游戏应用程序,它需要一个游戏结束对话框。 我尝试了好几种方法,但都没能找到工作 我的游戏算法的方法在一个单独的线程上运行。 在完成游戏后,在该线程中,我尝试调用(在游戏场景的类中)如getChildren().add(endDialog),但什么也没发生。如果我将它添加到它的构造函数中,而不是游戏线程的end putgetChildren.get(0).toFront(),仍然没有发生任何事情 有什么建议吗 编辑 找到了一种可行的方法,但它不是那么完美: setOnMouse

我正在开发一个游戏应用程序,它需要一个游戏结束对话框。 我尝试了好几种方法,但都没能找到工作

我的游戏算法的方法在一个单独的线程上运行。 在完成游戏后,在该线程中,我尝试调用(在
游戏场景
的类中)如
getChildren().add(endDialog)
,但什么也没发生。如果我将它添加到它的构造函数中,而不是游戏线程的end put
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);
            }
        }
    });
setOnMouseMoved(新的EventHandler(){
@凌驾
公共无效句柄(MouseEvent t){
若果(完){
getChildren().add(newenddialog());
getChildren().get(25).setOpacity(0.7);
}
}
});
它唯一的问题是,在我完成播放后,我必须再次移动鼠标才能显示对话框


如何及时捕获
结束
字段的值?

您使用了哪种线程

在JavaFX中,您必须使用classe来正确地执行操作,并且不要让freez成为GUI的东西

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

你可以去看一看


如果你想要漂亮的对话,请看一下

我同意上面的说法。虽然没有提到或,但要执行所有线程操作,您应该在JavaFX应用程序中使用其中一个。主要区别在于,您可以与JavaFX应用程序线程进行对话,这在API中是不可能的。