在JavaFX中,我使用stage1.hide()从一个阶段切换到另一个阶段; stage2.show();
然而,stage2相当大,包含一大堆元素。因此,当我展示它时,当它第一次弹出时,有一个400毫秒的时间段,整个舞台是空的和灰色的。然后出现所有元素。
它非常丑陋。这是在具有非常好的GPU的i7上。
我注意到如果我展示它,然后隐藏它,然后再显示它,最终的节目从它出现在屏幕上的那一刻起看起来会很完美。然而,当我隐藏()然后第一次显示()舞台时会闪烁,这样就不会起作用。
在某种程度上可以实现我在上面段落中所描述的内容,而不必预先在屏幕上显示舞台吗?
这是在Java 8u5上使用新的Modena主题。值得注意的是,使用JavaFX 2.2时,此问题不存在。
三江源!
答案 0 :(得分:4)
此问题的根本原因是早期Java 8版本中引入的性能回归。将Java 8版本更新为latest development version,解决了问题(正如原始海报所报告的那样)。
更新后,用户不再体验:“整个舞台为空和灰色的400毫秒时间段”。因此,不再需要问题“在show()之前预加载JavaFX阶段”中的原始请求,因为没有任何预加载调整,性能很好。