Here's a possible solution: 

import java.util.ArrayList; 

public class One {
  public static void main(String[] args) {
    int size = Integer.parseInt(args[0]); 
    ArrayList<Integer> row;
    ArrayList<ArrayList<Integer>> matrix; 
    matrix = new ArrayList<ArrayList<Integer>>();
    for (int line = 0; line < size; line++) {
      row = new ArrayList<Integer>(); 
      for (int column = 0; column < size; column++) {
        row.add((int) (Math.random() * 100 - 50)); 
      }
      matrix.add(row); 
    }
    One.show(matrix); 
  }
  public static void show(ArrayList<ArrayList<Integer>> matrix) { 
    for (ArrayList<Integer> row : matrix) {
      for (Integer number : row) {
        System.out.printf( " %3d", number ); 
      }
      System.out.println();
    }
  }
}

Here's how this works for me: 

Welcome to DrJava.  Working directory is C:\Users\dgerman\c212\fall2018\midterm
> java One 4
 -40  -8 -11  18
  23   5 -16 -19
 -20   1 -16  16
  34  49 -40 -46
> java One 9
   7 -22 -27  32 -18  45  17  16  36
  26 -42  29 -38  14 -49 -47 -38   0
  33 -42  -9  -9  16  31 -33 -44  11
  33  30   3 -21   5 -20  26  22  -2
  31 -34  32  -9   5  40 -43  32  19
 -34 -34  -8  17  10  45 -17  13  43
 -17  42 -27 -12 -14   3 -30  10  -6
 -15  -7  19 -32  16 -27  17 -29   4
   3  -8 -42 -23  30   6 -15  -3  47
> java One 5
  22  42 -48  34 -12
   4  33   0  39  40
 -23  -1  18  11  43
 -43 -25  26  49 -14
   6 -47  45 -37  35
> java One 3
  47 -43 -15
  26 -39 -22
  27 -49   5
>