在我的Java应用程序中,我计划使用很多ImageIcon
,它们将显示在JLabel
中。单个.png
文件的大小约为8 kB。在运行时期间,图标将显示在JLabel
s中,但标签中显示的图标会经常更改,使用.setIcon(icon)
。
我应该在程序启动时立即加载所有这些图标并将它们存储在一个数组中(长度是> 150),还是每次更改图标时都应该加载图标,如下面的代码所示?
请注意,JLabel
的数量相当小,因此,在给定时刻,只会显示一系列图标。
ClassLoader cl = getClass().getClassLoader();
String path = "somePath";
URL url = cl.getResource(path);
Icon icon = new ImageIcon(url);
该应用程序将是一个jar文件,其中包含jar内的资源。
答案 0 :(得分:2)
这有点陈词滥调,但"除非需要优化,否则不要优化您的应用程序。"它将来会使维护变得更加困难。
因为,每个程序都会及时发展,所需的优化类型可能不是您计划在此刻进行的。您的JLabel可能会增加,或者您的可能图标可能会增加。或者出现其他一些新功能,您可能需要同时显示所有图标等。
所以,只需编写尽可能干净的代码,当您发现确实需要进行优化时,请在测量瓶颈位置后进行。
PS:我告诉你,因为你写了#34;我打算用#34;所以你没有真正完成应用程序并看到了这么多图标加载的效果。PS2:操作系统和磁盘缓存每天都在变好,所以暂时可能就足够了。