imho je to dost zmatečné.
Pořád zjištuješ délku matice jen (sloupečku/řádku), chybí mi tam něco jako pole[x].length
dvojrozměrné pole v javě nemusí bejt čtvercové a dokonce ani ne obdelnikové.
A pak bych si alespon místo opakovná těch 3 řádku udělal nějakou metodu:
public static void swap(a,b) která by dělala a->b,b->a.