我正在尝试为我的 Pong 游戏制作顶墙和底墙。我想我一切都正确,但它不会运行,因为它说“局部变量墙可能尚未初始化”。如何初始化图像?
import java.awt.Graphics;
import java.awt.Image;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class Wall extends Block
{
/**
* Constructs a Wall with position and dimensions
* @param x the x position
* @param y the y position
* @param wdt the width
* @param hgt the height
*/
public Wall(int x, int y, int wdt, int hgt)
{super(x, y, wdt, hgt);}
/**
* Draws the wall
* @param window the graphics object
*/
public void draw(Graphics window)
{
Image wall;
try
{wall = ImageIO.read(new File("C:/eclipse/projects/Pong/wall.png"));}
catch (IOException e)
{e.printStackTrace();}
window.drawImage(wall, getX(), getY(), getWidth(), getHeight(), null);
}
}
感谢所有回答我的人,我已经弄明白了。我没有意识到我只需要设置 wall = null。
最佳答案
你的图片确实是用声明初始化的
wall = ImageIO.read(new File("C:/eclipse/projects/Pong/wall.png"));
但是,编译器会报错,因为该语句可能会失败,因为它在 try/catch block 中。一种仅“满足”编译器的可能方法是将 Image 变量设置为 null:
Image wall = null;
关于java - 初始化图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21792813/