我正在制作一个 JavaFX 应用程序,在其中读取问题并在按下开始按钮时生成解决方案。问题是当我单击开始按钮时,GUI 挂起。我看了this post这建议将线程安全方法包装在 Platform.Runlater 中。
现在,当单击按钮时, Controller 中的 doBtnStartPressed() 方法将被调用。此方法仅包含对 showSolution() 方法的调用。然后我将这个方法的内容包装在Platform.runLater中,如下所示:
private void showSolution() {
Platform.runLater(new Runnable() {
public void run() {
// solve problem
// draw solution on panes (rectangles which represent time windows)
}
});
}
但这不起作用。
最佳答案
您可以在这里找到 JavaFX 后台任务的一般概述以及如何处理它们: http://www.guigarage.com/2014/10/datafx-8-released/ (滚动到标题“ProgressChain”)。
此外,我在今年 JavaOne 的“JavaFX Enterprise”演讲中提到了这个主题。您可以在这里找到幻灯片:http://de.slideshare.net/HendrikEbbers/javafx-enterprise-javaone-2014?related=1
关于 JavaFX 和 UI 工具包中并发性的一般讨论可以在这里找到:
关于java - 如何使用 Platform.runLater 使 JavaFX 线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26502636/