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

标签 java javafx javafx-8

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

但是,stage2 相当大并且包含一大堆元素。所以当我 show() 它时,当它第一次弹出时,有 400 毫秒的时间,整个舞台是空的和灰色的。然后所有元素都会出现。

实在是太丑了。这是在具有非常好的 GPU 的 i7 上进行的。

我注意到,如果我显示它,然后隐藏它,然后再次显示它,那么最终的节目从出现在屏幕上的那一刻起就会看起来很完美。但是,当我第一次 hide() 然后 show() 舞台时,会出现闪烁,所以这是行不通的。

是否有可能实现我在上一段中描述的内容,而不必事先让舞台出现在屏幕上?

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

谢谢!

最佳答案

此问题的根本原因是早期 Java 8 版本中引入的性能回归。将 Java 8 版本更新到 latest development version ,修复了该问题(如原始海报所报告)。

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

关于java - 在 show() 之前预加载 JavaFX 阶段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24074888/

相关文章:

java - 通过 JavaFX 将子菜单动态添加到 FXML

java - 如何在javafx中重复同一场景中的节点

java - 映射到 JSON - 忽略特定键

具有条件颜色变化的 JavaFx TableView ProgressBar

java - TextField.bindAutoCompletion 返回对象 ID

java - 如何使用 NetBeans 10 打包 javafx 11/jdk 11 应用程序

java - 使这个带有内存的递归斐波那契更快?

java - 如何从另一个类更改 imageview 源?

javascript - 将 jpeg 图像转换为正确的字节数组时遇到问题

java - css 按钮图像未与 id 和样式类一起加载