代码之家  ›  专栏  ›  技术社区  ›  Juan González

在javafx中更新画布

  •  1
  • Juan González  · 技术社区  · 7 年前

    我有一个javafx应用程序,它使用画布根据一些计算的结果呈现不同的元素。我在while循环中进行这些计算后调用渲染函数,如下所示:

      static void calculateAndRender(/*Args*/){
    
          while(/*condition*/){
    
              //Perform some calculations
    
              //render the results
              render();
         }
     }
    

    但是,画布仅在while循环结束后渲染,而不显示其间的步骤。渲染功能按预期工作,我知道问题不是循环完成得太快以至于我看不到渲染的画布,而是需要一些时间。

    所以,问题是,为什么这样做时画布没有更新?我该怎么做才能让它按我想要的那样工作?我在使用python与gtk和javascript时遇到了类似的问题,但在这两种语言中,我都能够强制进行UI更新,这似乎是java无法做到的。

    1 回复  |  直到 7 年前
        1
  •  0
  •   mipa    7 年前

    您正在使用循环阻塞JavaFX应用程序线程。 请阅读此处的文档: http://docs.oracle.com/javafx/2/threads/jfxpub-threads.htm