使用方法参数创建变量

时间:2016-02-04 20:49:22

标签: java

我正在尝试编写一个方法,可以帮助我使用方法的参数更容易地声明变量。我是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);

2 个答案:

答案 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);