以下のプログラムは私が作っているプログラムを簡略化したものです。
簡単に言うと40種の画像(24*32)を4つずつ、計160個表示するものです。(実際作ってるものは順番がばらばらになる、クリック時に動作等があります。)
これを実行すると多種の画像読み込みに時間がかかるのか、すぐに全部を表示できません。
高性能なパソコンならどうか分かりませんが、私のパソコンのスペックはよくないからか、画像を一種ずつ表示している様子がわかります。
私としてはこれは好ましくないので、素早く表示する、まとめて表示するなどの改善が欲しいです。
どうすればこのプログラムを改善できるか教えてください。
このプログラムの画像はdataフォルダに40種、0.gif~39.gifが用意されている事が前提になっています。
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Jpeg extends JPanel{
Image[] img=new Image[160];
public static void main(String[] args){
JFrame frame = new JFrame("Test");
frame.setSize(640,480);
frame.add(new Jpeg());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.setResizable(false);
}
public Jpeg(){
for(int i=0;i<160;i++)
img[i]=getToolkit().getImage("data\\"+i%40+".gif");
}
public void paintComponent(Graphics g){
super.paintComponent(g);
setBackground(Color.GREEN);
for(int i=0;i<160;i++){
if(img!=null)
g.drawImage(img[i],16+(i%20)*24,40+i/20*32,this);
}
}
}