2016-05-14 110 views
-3

我有隐藏的标签。我想将其设置为可见,但存在延迟,标签在另一条指令后可见。有什么方法可以立即刷新标签吗?JavaFX setVisible不立即更新

public void foo { 
    label.setVisible(true); 
    //the label is not visible 
    foo2(); 
    //here the label is visible 
} 
+0

在'foo2()'方法中是否有任何控制'label'可见性的东西? –

+0

不,它不会对UI做任何事情 – xqtxq

+0

如果有意义,您可以考虑将属性'visibleProperty'绑定。 – pzaenger

回答

0

对您的方法foo()的调用必须在JavaFX应用程序线程上发生,否则您将得到一个异常。但是这也意味着应用程序线程在您的方法foo()运行的整个过程中都被阻塞。那么,如果您阻止了应用程序线程,JavaFX应该如何更新标签的呈现?渲染只能在你的方法foo()完成后进行。如果foo2()的执行时间太长,则应在其他某个线程上执行该操作。请参阅JavaFX中的并发性文档。