JavaFX后台加载

JavaFX后台加载,java,javafx,javafx-8,Java,Javafx,Javafx 8,当主线程在后台加载一组数据并最终将其加载到主场景时,如何使前台有一个不确定的进程指示器的对话框。当前,当程序加载时,页面是白色的,没有响应,只是看起来不好。另外,这是最好的方法还是有更好的方法。您的窗口被冻结/无响应,因为您正在主线程(JavaFX用于渲染窗口的线程)中加载此数据 您需要做的是在一个单独的线程中执行加载,该线程将与主线程并行运行。加载完成后,该线程将通知主线程,并将加载的数据传递给您进行渲染 以下是创建加载数据的新线程的快速方法: Thread myThr

当主线程在后台加载一组数据并最终将其加载到主
场景时,如何使前台有一个不确定的
进程指示器的
对话框
。当前,当程序加载时,页面是白色的,没有响应,只是看起来不好。另外,这是最好的方法还是有更好的方法。

您的窗口被冻结/无响应,因为您正在主线程(JavaFX用于渲染窗口的线程)中加载此数据

您需要做的是在一个单独的线程中执行加载,该线程将与主线程并行运行。加载完成后,该线程将通知主线程,并将加载的数据传递给您进行渲染

以下是创建加载数据的新线程的快速方法:

            Thread myThread = new Thread(new Runnable() {
                @Override
                public void run() {

                    // Perform your loading here
                    // Once the loading is complete, notify the main thread

                }
            });
            myThread.start();
如果使用此选项,则不确定的
进度指示器将不受影响


“通知主线程”有很多方法。您可以将主类的一个实例传递给次线程,当数据加载完成时,您只需在该实例上调用一个方法。

我相信JavaFX会抛出一个错误,说它不在FX上thread@Kyefer“加载数据”时,您到底在做什么?JavaFX会说,如果您试图在不同的线程中修改JavaFX元素,但我的理解是,您只是加载数据,比如读取大文件或其他内容。JavaFX中的并发性以及Oracle JavaFX站点上的文档之前有很多问题,请搜索和研究它们。如果您仍然有问题并需要帮助,请张贴一篇文章,说明您的具体问题。