Java 循环绘制不同的图像?
我想有一个循环,将通过我的每一个图像运行。我想把它们画到屏幕上,如果我分别画每个图像,效果很好,但是它使用了很多代码。在使用循环绘制每个图像时,应使用更少的代码。这是我的密码Java 循环绘制不同的图像?,java,Java,我想有一个循环,将通过我的每一个图像运行。我想把它们画到屏幕上,如果我分别画每个图像,效果很好,但是它使用了很多代码。在使用循环绘制每个图像时,应使用更少的代码。这是我的密码 String image[] = {"carA", "carB"}; for(int i = 0; i < image.length; i++){ g.drawImage(image[i].getImage(), image[i].getX(), image[i].getY(),
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);
}
字符串图像[]={“carA”,“carB”};
对于(int i=0;i
它说问题是字符串被使用了。getX()和getY()等可以找出x和y坐标。
我如何才能让它工作?使用该方法,它可以绘制字符串:您正试图在字符串对象上调用getImage/getX/getY。 您应该首先像这样将图像加载到图像对象中
Image img1 = Toolkit.getDefaultToolkit().getImage(image[i]);
您应该初始化有关图像的所有数据,请尝试以下示例:
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);
}
字符串是一种存储字符的类型。因此,它不能用于您的要求 为满足要求,您应将自己的类型装箱 开始创建类将使用的接口的好地方
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());
}
Collection images=loadImages();
用于(IMichaelImage图像:图像){
g、 drawImage(image.getImage(),image.getX(),image.getY());
}
也许您希望数组的类型与字符串[]不同,可能是一个包装图像并保持其位置和大小的类。