为什么Java突然在图像上返回空指针异常?

时间:2016-04-14 20:48:36

标签: java image

我一直试图通过在面板上绘制BufferedImage并在componentResized发生时重绘它来创建可调整大小的图像。然而,尽管早期版本中的图像加载很好(要么根本没有调整大小,要么没有正确完成),现在Java声称图像不存在。 代码如下

    public class Image extends JPanel{
    BufferedImage img=null;

    public Image{
    try {
        img = ImageIO.read(new File("Untitled.png"));
    }
    catch (IOException e) {
    }
    Dimension d=getSize();
    Graphics g=getGraphics();
    g.drawImage(img, 0, 0, d.width, d.height, null);

即使没有组件侦听器,它也会在drawImage上返回NullPointerException。但是我知道图像不是空的,因为它之前有效,这让我觉得这里的代码有问题

2 个答案:

答案 0 :(得分:0)

如果出现问题: img = ImageIO.read(new File("Untitled.png"));然后你在这里绘制一个空引用对象:

g.drawImage(img, 0, 0, d.width, d.height, null);

这就是NPE的原因

答案 1 :(得分:0)

这是因为Graphics对象g可能为null。 图形g = getGraphics();