[Solved] Make a print method with for loop Java


I have solved this exercise, but I think it is not a perfect solution. Does anybody have another way to solve this task?

public static void main(String[] args) {

        printMatrix(5);


    }
    public static void printMatrix (int n) {

        int d = n +(n-1);
        int k = n*2;
        int g = -1;

        for (int i = 0; i < d ; i++)
        {
            if(i<n){
                g++;
            }
            else{k=n*2;
                g--;}

            for(int j = 1; j <=d; j++){
                if (i < n){
                int abs = Math.abs(j-n);
                System.out.print(abs>i ? "*" : i-abs+1);
                }
                else{
                    k--;
                    int abs = Math.abs(k-n);
                    System.out.print(abs>g ? "*" : g-abs+1);

                }

            }
            System.out.println("");
        }

    }
}

Output:

****1****
***121***
**12321**
*1234321*
123454321
*1234321*
**12321**
***121***
****1****

solved Make a print method with for loop Java