我正在用Java制作一个游戏,我有一个像这样加载图像的类
class ImageLoader {
public static ImageIcon image_1 = new ImageIcon(this.class.getResource(file_name_of_image);
public static ImageIcon image_2 = new ImageIcon(this.class.getResource(file_name_of_image);
public static ImageIcon image_3 = new ImageIcon(this.class.getResource(file_name_of_image);
public static ImageIcon image_4 = new ImageIcon(this.class.getResource(file_name_of_image);
public Image getImage1() {
return image_1.getImage();
}
}
我称之为
// paint method
g.draw(ImageLoader.getImage1()...);
或
setIcon(ImageLoader.image_1);
我的问题是,当我的程序运行时,CPU使用率很高,我认为这是因为必须在每次重绘时加载这些图像而且我应该提到,图像的大小可能与它们的组件大小不同所以需要进行一些扩展。
我应该使用BufferedImage
吗?或者有人可以向我解释我可能做错了什么,或问题是什么?
答案 0 :(得分:4)
我认为您的高CPU必须来自其他地方。加载这些静态变量后,无论重新绘制,它们都不会再次加载。程序启动时可能会有很高的CPU加载它们一次,但我没有看到任何理由它会再加载它们。