JavaFX:打开一个停止响应的空白阶段

时间:2015-08-30 00:43:50

标签: java javafx

我正在尝试使用此教程示例创建折线图:https://docs.oracle.com/javase/8/javafx/user-interface-tutorial/line-chart.htm,我稍微重做了一些,但我没有使用test = [] puts "Please type 5 different words when you're ready-" 5.times do test << gets.chomp end test.sort.each do |input| puts "testing this: " + input.upcase end 方法提供的阶段{ {1}}课程。相反,我正在尝试创建自己的多个阶段。但是,当我尝试这样做时,我只会看到一个空白的白色窗口,它会停止响应。这是代码:

start

我知道这不是展示舞台的最佳做法,但我只是试图掌握JavaFX。有谁能看到这个问题?

1 个答案:

答案 0 :(得分:1)

由于我无法评论,我会尽力帮助。

如果我做对了你:你想做一些(沉重的)工作并更新UI以反映正在发生的事情。

为此,您应该创建另一个(工作者)线程,以便在需要更新时调用UI(应用程序)线程。根据{{​​3}},您应该将长时间运行的任务从JavaFX Application线程(运行我们的start(Stage stage)方法的线程)移开

  

JavaFX场景图表示JavaFX应用程序的图形用户界面,它不是线程安全的,只能从UI线程(也称为JavaFX Application线程)访问和修改。在JavaFX Application线程上实现长时间运行的任务不可避免地使应用程序UI无响应。最佳实践是在一个或多个后台线程上执行这些任务,并让JavaFX Application线程处理用户事件。

this是Application类的功能及其启动方式。

  

Java启动程序在JavaFX应用程序线程上加载并初始化指定的Application类。如果Application类中没有main方法,或者main方法调用Application.launch(),则会在JavaFX Application Thread上构造Application的实例。

您当前的代码应该易于修改以使其成为可能。 Here是一些如何从工作线程更新UI的示例。