【问题标题】:JavaFX setVisible doesn't update immediatelyJavaFX setVisible 不会立即更新
【发布时间】:2016-09-10 15:03:33
【问题描述】:

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

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

【问题讨论】:

  • foo2() 方法中是否有任何东西可以控制label 的可见性?
  • 不,它对 ui 没有任何作用
  • 如果有意义的话,你可以考虑绑定属性visibleProperty
  • 你会发布你的foo2()方法的内容吗?
  • 你怎么称呼foo。如果这在 UI 线程中没有发生,那就可以解释延迟。

标签: java javafx


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2016-08-06
    • 2018-11-08
    • 2012-09-22
    • 1970-01-01
    • 1970-01-01
    • 2017-05-24
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多