bufferedImage的getGraphics()中的空指针异常?

时间:2011-05-05 06:14:05

标签: java nullpointerexception bufferedimage

public void saveImage(String path){
    BufferedImage image = (BufferedImage) createImage(500, 500);
    Graphics gImage = image.getGraphics(); //<<<<<<<<--- exception
    paint(gImage);
    image = image.getSubimage(0,0,500,500);     
    try {
        ImageIO.write(image, "png", new File(path+".png"));
    }
    catch (Exception e){}
}

问题在哪里?

2 个答案:

答案 0 :(得分:2)

显然,方法createImage(int, int)正在返回null。原因在documentation

中解释
  

返回:
  屏幕外可绘制图像,可用于双缓冲。   如果组件不可显示,则返回值可以为null。这将   如果GraphicsEnvironment.isHeadless()返回true,则总会发生。

答案 1 :(得分:0)

您的NPE可能不是来自getGraphics,而是来自尝试取消引用null image变量。如果您的组件无法显示,createImage会返回null