java - 如何快速加载大约 150 个静态 ImageIcon 对象。每个1KB

标签 java swing java-6

我在静态类和类似的语句中有大约 150 张 gif(都相当小 = 1KB)

public final static ImageIcon I_ADDFAV = new ImageIcon("icons/addfavorite.gif");
public final static ImageIcon I_AUTO_LOAD = new ImageIcon("icons/auto_load.gif");
...

我用它们来显示带有图标的 JButton。 在应用程序启动期间,我注意到与这些语句相关的加载时间增加了大约 2 秒。我想知道是否有人知道加载这些 gif 的更快方法。我在想,将所有这些都放在一个文件中可能是一种方式,因为我怀疑从光盘读取 150 个小文件是这方面的实际延迟。但我可能是错的。有没有人有一个聪明的主意或曾经处理过这种情况?我们希望将其降低到毫秒。

干杯 约安尼斯

最佳答案

我建议将所有图像合并到一个文件中,就像 a website should combine all its image requests into a single request for a bunch of sprites .几乎所有从磁盘加载文件的时间都花在寻道时间(将磁头移动到磁盘上的正确轨道)和旋转延迟(等待磁盘旋转,使磁头位于正确的位上)。因此,从磁盘读取大文件的时间与从磁盘读取大量小文件的时间基本相同,一旦大图像在内存中,您就可以将所有 Sprite 分开并将它们显示在按钮上。

关于java - 如何快速加载大约 150 个静态 ImageIcon 对象。每个1KB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9152611/

相关文章:

java - 将 spring 服务列表转换为另一个实体作为响应

Java - 如何在每页上打印行号?

java - 重新绘制 - 立即绘制和删除

java - 在 Java 6 上从 keystore 中提取证书

java - 在Java中如何创建关联数组结构并排序,同时保留具有不同值对的重复键

java - 什么是NullPointerException,我该如何解决?

java - 如何测试 SSLSessionCacheTimeout

java - 将 JLabel 添加到 JPanel 时出现问题

java - 如何恢复到java 6?

java - 如何从 AlertDialog 中的 TextView 获取 Text()?