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