Исключение нулевого указателя в getGraphics () для BufferedImage? - PullRequest
1 голос
/ 05 мая 2011
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 ]

2 голосов
/ 05 мая 2011

Видимо, метод createImage(int, int) возвращает null. Причина объяснена в документации :

Возвраты:
отрисовываемое за пределами экрана изображение, которое можно использовать для двойной буферизации. Возвращаемое значение может быть нулевым, если компонент не отображается. Это будет всегда происходит, если GraphicsEnvironment.isHeadless () возвращает true.

0 голосов
/ 05 мая 2011

Ваш NPE, вероятно, происходит не от getGraphics, а от попытки разыменования пустой переменной image. Если ваш компонент не отображается, createImage возвращает null.

...