Вы можете заполнить матрицу, как это предложено в ответе saka1029 выше, а затем распечатать ее, используя форматированный вывод:
for (int i = 0; i < m.length; i++) {
for (int j = 0; j < m[i].length; j++) {
System.out.printf(" %2d ", m[i][j]);
}
System.out.print('\n');
}
Или можно оставить «нормальную» матрицу и измените только его вывод:
public static void main(String []args){
int m[][] = new int[5][5];
int count = 1;
// keeping initial array as is
for (int i=0; i<m.length; i++)
for(int j=0; j<i+1; j++)
m[i][j] = count++;
for (int i = 0; i < m.length; i++) {
StringBuilder sb = new StringBuilder();
for (int j = 0; j < m[i].length; j++) {
if (m[i][j] > 0) {
sb.append(String.format(" %2d ", m[i][j]));
} else {
sb.insert(0, String.format(" %2d ", m[i][j]));
}
}
System.out.println(sb.toString());
}
}
Вывод в обоих случаях идентичен:
0 0 0 0 1
0 0 0 2 3
0 0 4 5 6
0 7 8 9 10
11 12 13 14 15