Estás declarando un atributo int [][] mapa; en la clase Mapa, pero estás rellenando en el constructor una variable local del constructor ya que la declaras otra vez
    
Código Java:
Ver original- public Mapa() 
-     { 
-       int[][] mapa={{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,2,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,2,0},{0,1,0,0,1,0,1,0,0,0,0,0,0,1,0,1,0,0,1,0},{0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0},{0,1,0,1,0,0,1,0,0,3,3,0,0,1,0,0,1,0,1,0},{0,1,1,1,1,1,1,0,3,3,3,3,0,1,1,1,1,1,1,0},{0,1,0,1,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0},{0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0},{0,1,0,0,1,0,1,0,0,0,0,0,0,1,0,1,0,0,1,0},{0,2,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,2,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}}; 
-   
-     } 
cuando el constructor termina, ese int [][] mapa que declaras dentro desaparece y te queda el atributo int [][] mapa que sigue sin rellenar. Dicho de otra forma, tienes dos mapa distintos    
se bueno.