Cómo rellenar automáticamente una matriz 2D con números.

Hola, estoy tratando de rellenar automáticamente una matriz 2D en función de la entrada del usuario. El usuario ingresará 1 número, este número establecerá el tamaño de la matriz 2d. Entonces quiero imprimir los números de la matriz. por ejemplo, si el usuario ingresa el número 4. La matriz 2d será de 4 filas por 4 columnas, y debe contener el número del 1 al 16, e imprimirse de la siguiente manera.

1-2-3-4
5-6-7-8
9-10-11-12
13-14-15-16

Pero estoy luchando para pensar en la afirmación correcta que hará esto. por el momento mi código solo imprime una matriz 2d que contiene *.

Alguien tiene alguna idea de cómo podría imprimir los números, estoy realmente atascado. mi código sigue:

public static void main(String args[]){

    Scanner input = new Scanner(System.in);
    System.out.println("Enter room length");

    int num1 = input.nextInt();
    int num2 = num1;
    int length = num1 * num2;
    System.out.println("room "+num1+"x"+num2+"="+length);

    int[][] grid = new int[num1][num2];

    for(int row=0;row<grid.length;row++){   
        for(int col=0;col<grid[row].length;col++){
            System.out.print("*");  
        }
        System.out.println();
    }
}

Respuestas a la pregunta(4)

Su respuesta a la pregunta