1

我正在用 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为此使用 a 吗?或者有人可以向我解释我可能做错了什么,或者问题是什么?

4

1 回答 1

4

我认为您的高 CPU 一定来自其他地方。一旦加载了这些静态变量,就不会再次加载它们,无论是否重绘。在您的程序开始加载它们一次时,可能会有很高的 cpu,但我看不出它会再次加载它们的任何原因。

于 2013-05-30T20:25:57.607 回答