Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用方法参数创建变量_Java - Fatal编程技术网

Java 使用方法参数创建变量

Java 使用方法参数创建变量,java,Java,我正在尝试编写一个方法,它可以帮助我使用该方法的参数更轻松地声明变量。我对java非常陌生,我正在尝试制作一个拥有大量图像的游戏,我想知道是否有更简单的方法来创建这些BuffereImage变量 目前我的代码如下所示 public class Painter extends JPanel { BufferedImage sprite = new BufferedImage(60,60,BufferedImage.TYPE_INT_ARGB); public void createBufI

我正在尝试编写一个方法,它可以帮助我使用该方法的参数更轻松地声明变量。我对java非常陌生,我正在尝试制作一个拥有大量图像的游戏,我想知道是否有更简单的方法来创建这些BuffereImage变量

目前我的代码如下所示

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);
我想看看是否有一种方法可以声明变量,这样它就可以像这样被调用

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

当然。使该方法采用字符串(filePath)作为参数。将返回类型设置为BuffereImage。然后在文件的构造函数中使用该字符串

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");

只需在
createBufImg
调用中省略
new
,并使其返回将在方法中创建的
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);

他希望方法返回,我相信不仅仅是一个设置变量的方法。没问题。祝你好运。要回答你的第二个问题,你可以更改createBufImg,将文件名作为参数,并将精灵作为返回值返回。签名将是“public sprite createBufImg(文件名)”。然后你可以这样称呼它:sprite=createBufImg(imageLocation);在上面的代码中,您根本不声明任何变量。您可以声明一个类、一个字段
sprite
、一个方法
createBufImg
、一个方法
paintComponent
,以及它的参数
g
。变量声明应该是
void foo(){String A;…}
中的
String A
。正如你所知;-)顺便说一句,如果要在
createBufImg
方法中替换它,那么初始化
sprite
字段就没有意义了。