Исключение нулевого указателя в getGraphics() для 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 ответа

Решение

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

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

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

Другие вопросы по тегам