0

私が持っている各画像を実行するループが欲しいです。それらを画面に描画したいのですが、各画像を個別に描画すれば問題なく動作しますが、多くのコードを使用します。ループを使用して各画像をペイントする一方で、使用するコードははるかに少なくなります。これは私のコードです。

String image[] = {"carA", "carB"};
        for(int i = 0; i < image.length; i++){
        g.drawImage(image[i].getImage(), image[i].getX(), image[i].getY(),
                image[i].getWidth(), image[i].getHeight(), this);
        } 

問題は文字列が使用されていることだと言っています。getX()やgetY()などは、x座標とy座標を見つけます。どうすればこれを機能させることができますか?

4

4 に答える 4

1

String オブジェクトで getImage /getX / getY を呼び出そうとしています。そのような Image オブジェクトに最初に Image をロードする必要があります

Image img1 = Toolkit.getDefaultToolkit().getImage(image[i]);
于 2012-11-14T14:00:45.610 に答える
0

画像に関するすべてのデータを初期化する必要があります。次の例を試してください。

String imageDatas[][] = {
        {"image_path_1.jpg", "0", "0", "100", "100"},
        {"image_path_2.jpg", "100", "0", "100", "100"}
};
for (String[] imageData : imageDatas) {
    String filePath = imageData[0];
    int x = Integer.parseInt(imageData[1]);
    int y = Integer.parseInt(imageData[2]);
    int width = Integer.parseInt(imageData[3]);
    int height = Integer.parseInt(imageData[4]);

    Image img = Toolkit.getDefaultToolkit().getImage(filePath);
    g.drawImage(img, x, y, width, height, this);
}
于 2012-11-14T14:43:59.040 に答える
0

メソッドを使用すると、drawString()文字列を描画できます。

于 2012-11-14T13:56:03.907 に答える
0

String は文字を格納する型です。したがって、お客様の要件には使用できません。

要件を満たすには、独自のタイプをクレートする必要があります。

クラスが使用するインターフェイスを作成するには、i を開始するのが適切です。

public interface IMichaelImage {

   int getX();
   int getY();
   Image getImage();

}

次に、プログラム ロジックが使用する情報を格納できるクラスを作成する必要があります。

public MichaelImage implements IMichaelImage { 

  private int x = 0;
  private int y = 0; 
  private Image image;

  public MichaelImage(Image image) {
    this.image = image;
  }

  public void setX(int x) {
    this.x = x;
  }

  public void setY(int y) {
    this.y = y;
  }

  @Override
  public int getX() {
     return this.x;
  ]

  @Override 
  public int getY() {
    return this.x;
  }

  public Image getImage() {
    return this.image;

  }

}

で、あなたはこのようなものを持っています

 Collection<IMichaelImage> images = loadImages();

  for(IMichaelImage image : images) {
    g.drawImage(image.getImage(), image.getX(), image.getY());
  } 
于 2012-11-14T15:35:59.447 に答える