在show()之前预加载JavaFX阶段

时间:2014-06-06 05:37:00

标签: java javafx javafx-8

在JavaFX中,我使用stage1.hide()从一个阶段切换到另一个阶段; stage2.show();

然而,stage2相当大,包含一大堆元素。因此,当我展示它时,当它第一次弹出时,有一个400毫秒的时间段,整个舞台是空的和灰色的。然后出现所有元素。

它非常丑陋。这是在具有非常好的GPU的i7上。

我注意到如果我展示它,然后隐藏它,然后再显示它,最终的节目从它出现在屏幕上的那一刻起看起来会很完美。然而,当我隐藏()然后第一次显示()舞台时会闪烁,这样就不会起作用。

在某种程度上可以实现我在上面段落中所描述的内容,而不必预先在屏幕上显示舞台吗?

这是在Java 8u5上使用新的Modena主题。值得注意的是,使用JavaFX 2.2时,此问题不存在。

三江源!

1 个答案:

答案 0 :(得分:4)

此问题的根本原因是早期Java 8版本中引入的性能回归。将Java 8版本更新为latest development version,解决了问题(正如原始海报所报告的那样)。

更新后,用户不再体验:“整个舞台为空和灰色的400毫秒时间段”。因此,不再需要问题“在show()之前预加载JavaFX阶段”中的原始请求,因为没有任何预加载调整,性能很好。