Vetor - Matriz em ordem crescente [Ajuda]

Olá pessoal,

Estou tentando fazer codigo para ordenar uma matriz em ordem crescrente porém não estou tendo o resultado que esperava,parace que o programa só lê a ultima linha da matriz.Para uma matriz 4 x 4 tenho o seguinte resultado

   1   2   3   4
   5   6   7   8
   9  10  11  12
   3   8   6   4

O maior número é 12
O menor número é 1
4
3
2
1
1
1
1
1
1
1
1
1
1
1
1
1

Codigo Java

import java.io.*;
public class vetor
{

    public vetor()
    {
    }


    public static void main(String args[])
    {
        int matriz[][];
        matriz = new int[4][4];
        int vetor[];
        vetor = new int[300];
        int i,j,u;
        

        try{

	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        //Mostra o número de linhas da matriz e a quantidade de colunas por linha
        System.out.println("Números linhas: "+matriz.length);
        
        }

        //Preenche as posições da matriz
        for(i=0;i<matriz.length;i++){

            for(j=0;j<matriz[i].length;j++){

                System.out.println("Digite o valor para a posição da linha "+i+" e da coluna "+j);
                matriz[i][j]= Integer.parseInt( br.readLine());
                //matriz[i][j]= nn*2;
                
                //matriz[i][j] = ((i*j*j)+1);
                
            }

        }
        //Exibe os valores da matriz
        for(i=0;i<matriz.length;i++)
        {

            System.out.println("");

            for(j=0;j<matriz[i].length;j++)
            {
                String valor = ""+ matriz[i][j];
                if ( valor.length() == 1 ){
                System.out.print("   "+matriz[i][j]);
                }
                if ( valor.length() == 2 ){
                System.out.print("  "+matriz[i][j]);
                }
                if ( valor.length() == 3 ){
                System.out.print(" "+matriz[i][j]);
                }

             }

        }

            // Procura maior número
        int maior=0;
        for(i=0;i<matriz.length;i++)
        {

            for(j=0;j<matriz[i].length;j++)
            {

                if (matriz[i][j]>maior ){

                 maior = matriz[i][j];
                 
                }
            }
        }

        // Procura menor número
        int menor=9999999;
        for(i=0;i<matriz.length;i++)
        {

            for(j=0;j<matriz[i].length;j++)
            {

                if (matriz[i][j]<menor ){

                 menor = matriz[i][j];

                }
            }
         }

        System.out.println("\n\nO maior número é " + maior);
        System.out.println("O menor número é " + menor);

         // Organiza os números
            int nmenor=0;
            int nnn=999;
            int cont1;
            
            for(cont1=0;cont1<16;cont1++){
                
                for(i=0;i<matriz.length;i++)
                {

                    for(j=0;j<matriz[i].length;j++)
                    {
                        
                        if ( matriz[i][j] < nnn ){

                         nmenor = matriz[i][j];
                        }
                    }
                   
                 }
                nnn=nmenor;
                System.out.println(nnn);
            }
    
    System.exit(0);

    } catch (Exception e) { System.out.print(e); }

    }

}

Se alguém poder me ajudar vou ficar muito grato,

Obrigado