在JavaFX应用程序中下载文件时;“此应用程序没有响应”;出现

在JavaFX应用程序中下载文件时;“此应用程序没有响应”;出现,java,linux,windows,javafx,process,Java,Linux,Windows,Javafx,Process,我想下载一个文件并等待它被下载,这样“无响应”错误就不会出现 if(需要下载){ launchStatus.setText(launchStatus.DOWNLOADING.status); downloadThread=新线程(()->{ 对于(文件:launchDir.listFiles()){ delete(); } launchDir.delete(); 下载客户端(); 下载mods(); }); downloadThread.start(); } if(downloadThread!

我想下载一个文件并等待它被下载,这样“无响应”错误就不会出现

if(需要下载){
launchStatus.setText(launchStatus.DOWNLOADING.status);
downloadThread=新线程(()->{
对于(文件:launchDir.listFiles()){
delete();
}
launchDir.delete();
下载客户端();
下载mods();
});
downloadThread.start();
}
if(downloadThread!=null){
下载thread.join();
下载thread.stop();
}
}
launchStatus.setText(launchStatus.STARTING.status);

创建(无论是否可见)进度条。在循环和其他事情上更新进度条。

启动一个新线程,然后调用
join()
;您正在阻止FX应用程序线程,因此在后台线程完成之前,它无法渲染任何内容。另外,不要调用
stop()
(您的IDE没有警告您吗?)。使用
javafx.concurrent.Task
。有关如何使用的信息,请参阅文档。观察任务完成的时间,然后根据需要执行下一组指令。不要阻止等待任务完成。如果您阻止JavaFX应用程序线程,则该线程将无法执行其任务,应用程序将变得无响应。不知道如何处理不可见的progressbar?当UI线程被阻止超过4秒时,将显示“应用程序无响应”。可以使progressBar.setVisible(false);下载progressBar.setProgress(1.0)和reset文件时,如果可见性很重要,那仅仅是coindicentagl,还有其他错误(没有;,无法判断)。。清理线程代码