Only the second inner loop needs to be adjusted a little bit (changes in bold):
for (int k = i; k >= 1; k--) {
System.out.printf(" %2d", k * k);
}
The first inner loop for indention runs n-i times, so the second inner loop have to do the rest: i..1.
And you have to print the square of the inner loop variable k instead of the outer loop variable i (which does not change in the inner loop).
solved triangle of square numbers java