Hasta ahora lo que he logrado es lo sgt, 
             for(j=1;j<m;j++){
      i=1;
      JOptionPane.showMessageDialog(null, a[j] );
      }
      
      for(i=1;i<n;i++){
      j=m;
      JOptionPane.showMessageDialog(null, a[j]  );
      }
      
      for(j=m;j>=2;j--){
      i=n;
      JOptionPane.showMessageDialog(null, a[j] );
      }
      
      for(i=n;i>=2;i--){
      j=1;
      JOptionPane.showMessageDialog(null,a[j]  );
      }
 
OJO ,ESTA EN JAVA (es la parte del proceso)
La verdad es que eso es lo unico que se me ha ocurrido , solo hace lo sgt en una matriz.
1        2     3     4
5        6     7     8 
9        10   11    12
13      14   15    16
1 2 3 4 8 12 16 15 14 13 9 5, 
de ahi no pasa, claro que es porque no he hecho el proceso de la otra parte, pero me di cuenta que lo de adentro o la otra parte del proceso no es la misma para todas las matrices.
Alguien me ayuda con el resto?? please.
Ah, y tal vez no es muy optimizado lo que hice y hay otra forma mas facil , por favor CRITICAR LO que hice si ven que no esta bien.
GRACIAS NUEVAMENTE.