Como ordenar uma Matriz

Olá Pessoal!, fiz código:

package estruturadedados;

import javax.swing.JOptionPane;

/**
 *
 * @author Jairo
 */
public class Exercicio8rQ5 {

    private static final int MAX_ALEATORIO = 100;

    //inicio do metodo construtor
    public static void main(String args[]) {
        int num[][] = new int[4][4];
        String n;
        //inicio do laço para guardar valores
        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 4; j++) {
                n = JOptionPane.showInputDialog("Digite um numero inteiro");
                num[i][j] = Integer.parseInt(n);
            }
        }
        System.out.println("Numeros Digitados pelo Usuario!");
        //inicio do laço para exibir valores
        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 4; j++) {
                System.out.printf("%5d", num[i][j]);
            }
            System.out.println();
        }
    }//fim do metodo construtor
}//fim da classe

Como faço para colocar em ordem crescente os elementos da Matriz?

Fiz uns ajustes desnecessários na codificação para facilitar o teste.
Como não tive certeza sobre o tipo de ordenação, testei duas, uma em linha e outra geral.
A instrução que faz a ordenação é Arrays.sort(vetor), entretanto a disposição varia de acordo com o tipo de ordenação.

import java.util.Arrays;

public class Ordenance {


    public static void main(String args[]) {
        int num[][] = new int[4][4];
        //Gerando os valores da matriz de forma aleatória
        for (int i = 0; i < num.length; i++) {
            for (int j = 0; j < num[i].length; j++) {
                num[i][j] = (int) (Math.random() * 1000);
            }
        }

        imprimirLinhas("Matriz gerada\n", num);
        //realizando a ordenação por linhas
        Arrays.stream(num).forEach(linha -> Arrays.sort(linha));
        imprimirLinhas("\nMatriz com linhas ordenadas\n", num);
        imprimirLinhas("\nOrdenação formal\n", ordenacaoFormal(num));

    }
    
    //imprime as linhas de um arrayBidimensional
    private static void imprimirLinhas(String texto, int[][] matriz) {
        System.out.print(texto);
        Arrays.stream(matriz).forEach(linha -> formato("[%4d]", linha));
    }
    //formatando a impressão das linhas
    private static void formato(String formato, int[] linha) {
        Arrays.stream(linha).forEach(num -> System.out.print(String.format(formato, num)));        
        System.out.println("");
    }
    //Ordenação considerando a disposição sequencial das linhas considerando todos os elementos
    private static int[][] ordenacaoFormal(int[][] matriz) {
        //int[] valores = new int[matriz.length * matriz[0].length];// <- se usar esta instrução e a matriz for do tipo[0][0] da ArrayIndexOutOfBoundsException

        int[] valores = new int[Arrays.stream(matriz).mapToInt(linha -> linha.length).sum()];
        int cont = 0;
        for (int[] linha : matriz) {
            for (int coluna = 0; coluna < linha.length; coluna++) {
                valores[cont++] = linha[coluna];
            }
        }
        Arrays.sort(valores);
        cont = 0;
        for (int[] linha : matriz) {
            for (int coluna = 0; coluna < linha.length; coluna++) {
                linha[coluna] = valores[cont++];
            }
        }
        return matriz;
    }

}

Obrigado addller, era isto mesmo que esta procurando para solucionar o problema!