我有一个 javafx 应用程序,它使用 Canvas 根据某些计算的结果呈现不同的元素。我在 while 循环中进行这些计算后调用渲染函数,如下所示:
static void calculateAndRender(/*Args*/){
while(/*condition*/){
//Perform some calculations
//render the results
render();
}
}
但是, Canvas 仅在 while 循环结束后渲染,而不显示其间的步骤。渲染函数按预期工作,我知道问题不在于循环完成得太快以至于我看不到渲染的 Canvas ,而是需要一些时间。
那么,问题是,为什么这样做时 Canvas 没有更新?我怎样才能让它按我想要的方式工作?我在使用 python 与 gtk 和 javascript 时遇到了类似的问题,但在这两种语言中我都能够强制 UI 更新,而这似乎无法在 java 中完成。
最佳答案
您正在用循环阻塞 JavaFX 应用程序线程。 请阅读此处的文档:http://docs.oracle.com/javafx/2/threads/jfxpub-threads.htm
关于java - 在javafx中更新canvas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46364926/