我正在尝试使用此教程示例创建折线图: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。有谁能看到这个问题?
答案 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的示例。