NullPointerException en gráficos Java

Estoy tratando de implementar un método para pintar una parte específica de una cuadrícula. Para hacerlo, anulé el método paintComponent:

public class Frame extends JPanel {
...
@Override
public void paintComponent( Graphics g ) {

    super.paintComponent( g );

    g.clearRect(0, 0, getWidth(), getHeight());
    this.rectWidth = getWidth() / this.NUM_COLUMNS;
    this.rectHeight = getHeight() / this.NUM_ROWS;

    for (int i = 0; i < NUM_ROWS; i++) {

        for (int j = 0; j < NUM_COLUMNS; j++) {

            int x = i * this.rectWidth;
            int y = j * this.rectHeight;
            g.setColor( Color.WHITE );
            g.fillRect( x, y, this.rectWidth, this.rectHeight );

        }
    }

}
}

Lo cual está bien, pero luego quiero pintar porciones específicas en una llamada de función como esta:

public void specificPaint( int coordinateX, int coordinateY, Color color ){

    Graphics g = this.getGraphics();

    int x = coordinateX * this.rectWidth;
    int y = coordinateY * this.rectHeight;

    g.setColor( color );
    g.fillRect( x, y, this.rectWidth, this.rectWidth);

}

La llamada debería ser como

// TESTING
    this.modelMap.specificPaint( 40,40,Color.RED );
    this.modelMap.specificPaint( 10,10,Color.RED );
    this.modelMap.specificPaint( 20,25,Color.BLUE );

Recibo un error de puntero nulo con el objeto Graphics, ¿por qué no puedo recuperarlo y usarlo?

¿Hay un mejor enfoque?

Respuestas a la pregunta(2)

Su respuesta a la pregunta