我正在尝试编写一个方法,可以帮助我使用方法的参数更容易地声明变量。我是java的新手,我正在尝试创建一个拥有大量图像的游戏,我想知道是否有更简单的方法来创建这些BufferedImage变量。
目前我的代码看起来像这样
public class Painter extends JPanel {
BufferedImage sprite = new
BufferedImage(60,60,BufferedImage.TYPE_INT_ARGB);
public void createBufImg() {
try {
sprite = ImageIO.read(new File("Images/SpriteSheet.png"));
System.out.println("File read");
} catch (IOException e) {
System.out.println("Could not read image");
}
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
createBufImg();
g.drawImage(sprite,20,20,this);
}
}
我正在寻找是否有办法声明变量,因此可以更像这样调用
sprite = new createBufImg(Images/SpriteSheet.png);
答案 0 :(得分:2)
不确定。使该方法采用String(filePath)作为参数。将返回类型设置为BufferedImage。然后在文件的构造函数中使用该字符串。
public BufferedImage createBufImg(String filePath) {
try {
return ImageIO.read(new File(filePath));
} catch (IOException e) {
System.out.println("Could not read image");
}
return null;
}
然后你可以这样调用这个方法:
sprite = createBufImg("Images/SpriteSheet.png");
答案 1 :(得分:-2)
只需忽略new
来电中的createBufImg
,然后返回将在方法中创建的BufferedImage
:
public BufferedImage createBufImg(File imagePath) {
try {
return ImageIO.read(imagePath);
} catch (IOException e) {
// handle exception, and either throw an exception or return something appropriate
}
}
...
BufferedImage myImage1 = createBufImage(path1);
BufferedImage myImage2 = createBufImage(path2);