【问题标题】:Load Images At Compile Time in Java在 Java 中的编译时加载图像
【发布时间】:2018-09-16 15:51:07
【问题描述】:

我制作了一个程序,它在运行时将大约 66 个图像加载到程序中。我使用 SwingWorker 加载图像,以便在单击按钮时可以快速访问图像而无需加载它们。但是,加载需要一点时间(2 分钟以上)。我想预加载图像,以便当用户运行程序时,图像已经加载。我在互联网上搜索过它,但没有找到解决方法。有没有办法做到这一点?任何帮助将不胜感激。 谢谢。

【问题讨论】:

  • @AndyTurner 我建议您回答您的评论,以便可以接受关闭此问题。
  • @BasilBourque 完成。

标签: java image swing loading compile-time


【解决方案1】:

您只能在运行时加载它们,因此如果它们需要 2 分钟来加载,那么它们将始终需要 2 分钟来加载。

这只是两分钟从何时开始的问题(按下按钮时,或者从某个较早的时间开始加载它们是有意义的)。

如果图片需要这么长时间才能加载,那么可能值得考虑一下为什么它们需要这么长时间。例如:

  • 至少在第一种情况下,您可以通过加载较小的图像来减少加载时间。
  • 如果您从远程源下载图像,请将它们存储在本地(不过,我想这太明显了,无法说明)。

【讨论】:

  • 程序运行时加载图片,进度条用于显示加载状态。它们需要时间来加载,因为它们是大图像。我无法加载较小的图像,因为之后我需要放大这些大图像。对于您的第二个建议,它们已经存储在本地
  • @MuhammadUmer “因为我需要在之后放大这些大图像”你需要同时放大 66 张图像吗?如果你这样做了,我会感到惊讶;以低分辨率加载所有图像,然后仅在您想放大该特定图像时才加载高分辨率图像。
  • 首先加载高分辨率图像的全部意义在于,如果我在单击按钮时加载高分辨率图像,程序会延迟一秒钟然后显示图像。我需要在单击按钮之前加载高分辨率图像,而不是先加载低分辨率,然后再加载高分辨率。希望你能理解
  • @MuhammadUmer 是滞后 1 秒还是滞后 120 秒更糟?
  • 这不是关于我的朋友更糟,而是关于客户想要什么
【解决方案2】:

将它们放在您的类路径中,并在运行时将它们作为资源加载。您将需要知道所有 66 个名称。

请参阅https://docs.oracle.com/javase/8/docs/technotes/guides/lang/resources.html 的官方 Oracle 教程以了解更多信息。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2015-05-12
  • 1970-01-01
  • 2014-05-12
  • 2010-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-12
相关资源
最近更新 更多