0

テキストドキュメントからマップを読み取るアプリケーションを起動すると、多くの遅延が発生するため、別の画像変数とバッファリングされた画像がありますか?

BufferedImage を使用した私のコード(申し訳ありませんが英語ではありません):

for(int i = 0; i < pole[0].length; i++)
    {
        for(int j = 0; j < pole.length; j++)
        {
            if(pole[j][i] == 1)
            {
                g.setColor(Color.RED);
                try {
                    //  g.fillRect(j*40, i*40, 40, 40);
                      wall = ImageIO.read(ClassLoader.getSystemResource("Images/wall.gif"));
                      g.drawImage(wall, j*40, i*40, null);
                } catch (IOException ex) {
                    JOptionPane.showMessageDialog(null, "Error: "+ex.getMessage());
                }
            }
        }
    }
4

1 に答える 1

4

画像を 1 回だけ読み込む必要がある場合は、画像を i*j 回読み込んでから、各タイルに同じ参照を使用します。

いえ

Image wall = ImageIO.read("...");
for(int i=0;i < ...)
   for(int j=0;j < ...)
      g.drawImage(i*40, j*40, wall);

そこに属さないことをループで行うべきではありません。また、ループで IO を実行したくはありません。そして、ロード間で変更されないため、ループのたびに同じ正確な画像をロードしたくないことは絶対にありません。

于 2013-08-07T12:55:53.913 に答える