当前位置: 首页 > 知识库问答 >
问题:

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

郁景龙
2023-03-14

在JavaFX中,我使用stage1从一个阶段切换到另一个阶段。隐藏();第二阶段。show();

然而,第二阶段相当大,包含了一大堆元素。所以当我显示()它时,当它第一次弹出时,有一段400毫秒的时间,整个阶段是空的和灰色的。然后所有的元素都出现了。

太难看了。这是在i7上,有一个非常好的图形处理器。

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

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

这是在Java8u5与新的摩德纳主题。值得注意的是,JavaFX 2.2这个问题不存在。

谢谢你!

共有1个答案

潘自强
2023-03-14

这个问题的根本原因是早期Java8版本中引入的性能回归。将Java8版本更新为最新的开发版本,修复了这个问题(如原海报所报道)。

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

 类似资料:
  • 我正在尝试将容器的背景图像设置为来自资产的图像,如下所示: 但这将需要一些时间来加载和返回空白,同时屏幕直到图像加载。. 因此,我尝试在构建之前预加载图像,如下所示: 这返回了这个错误:

  • 我有一个方法,可以为WebView的WebEngine设置一个新的网页,需要等到网页加载完成后才能继续使用当前方法。 基本上我想要: 我尝试过使用ChangeListener(),但它只会在我的方法完成执行后执行。我在谷歌上搜索了许多导致更多挫折感的术语,比如“java非阻塞等待布尔值”。最终,我成功地启动了新线程(以防止应用程序GUI锁定)并使用了倒计时(与Thread.join()相反)。下面

  • 问题内容: 在Java 8中,我可以使用以下方法使用预加载器启动JavaFX应用程序: 我更喜欢从上面的代码开始,而不是使用部署配置,因为我不希望图形界面在每次启动应用程序时都启动,而只是在一些计算出应用程序应该在其中运行的代码之后才启动GUI模式。 我使用的是“ com.sun.javafx.application.LauncherImpl”类,但显然在Java 9中,所有以“ com.sun”

  • 我试图从URL中获取数据,但我需要的信息需要几秒钟才能加载,并且在加载之前只在HTML中显示为加载,所以当我使用此代码时,我无法提取我需要的数据。 我怎么能让网址加载一段时间,然后再把超文本标记语言去掉呢?

  • 问题内容: 您好朋友,我想在特定的div加载数据之前向Ajax加载器显示,但问题是数据在同一页面上动态传输,但是我的脚本从另一个文件调用数据, 请参见下面的代码 脚本 的HTML 它的工作正常,但我想在同一页面中加载数据,请帮助我 提前致谢 .... 编辑 我想说明之前加载数据装载到 问题答案: 您可以尝试使用以下html- 和脚本-