java - 初始化图像

标签 java image initialization

我正在尝试为我的 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/

相关文章:

java - vector 数学中的大 float

java - Java中的空白字符常量

jquery - 有没有办法根据名称定位目录中的图像?

java - 我应该将初始 java String 值从 null 设置为 ""吗?

java - 当我从扩展特定接口(interface)的类创建对象时,我可以在使用该接口(interface)的地方使用该对象吗?

java - 'Class.forName("MY_JDBC_DRIVER")' 的目的是什么?

php - 一般图像预加载问题

php - 使用 Google 云消息传递的图像推送通知

c++ - 直接和复制构造函数

c - 嵌套结构变量初始化