ciao a tutti
vorrei che la mia matrice fosse riempita con una tonalità sfumata rosso/arancio UGUALE in ogni casella e non unica per tutta la matrice. vi posto le due classi

codice:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
import javax.swing.JPanel;


public class MatrixPanel extends JPanel{
    
    protected Rectangle2D.Double [][] rect;
    protected GradientPaint [][] colorrect;
    private int row,column;
    private final int LATO = 30;
    
    //costruttore
    public MatrixPanel(int row,int column){
        
        super();
        
        this.row = row;
        this.column = column;
        this.rect = new Rectangle2D.Double [this.row][this.column];
        this.colorrect = new GradientPaint [this.row][this.column];
        //inizializzo matrice di rettangoli
        for(int i=0;i<this.row;i++){
            for(int j=0;j<this.column;j++){
                
                this.rect[i][j] = new Rectangle2D.Double(20+(i*this.LATO),20+(j*this.LATO),this.LATO,this.LATO);
                
            }
        }
        
        //inizializzo la matrice dei colori
        for(int i=0;i<this.row;i++){
            for(int j=0;j<this.column;j++){
                
                GradientPaint gp1 = new GradientPaint(0,0,Color.RED,0, 70,Color.ORANGE);
                this.colorrect[i][j] = gp1;               
                
            }
        }
    }
    
    //lo disegna
    @Override
    public void paintComponent(Graphics g){
    
        super.paintComponent(g);
        Graphics2D g2d = (Graphics2D)g;
        setBackground(Color.WHITE);
        
        for(int i=0;i<this.row;i++){
            for(int j=0;j<this.column;j++){
            
                
                g2d.setPaint(this.colorrect[i][j]);
        g2d.fill(this.rect[i][j]);
        g2d.setColor(Color.black);
        g2d.draw(this.rect[i][j]);
            
            }
        
        
        }
        
    
    }
    
}
Questo è il main
codice:
import java.awt.Container;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;


public class MatrixFrame extends JFrame{
    
    private MatrixPanel mtx;
    
    public MatrixFrame(){
    
        super("matrice 4x3");
        
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.mtx = new MatrixPanel(3,4);
    
        Container contPane = this.getContentPane();
        contPane.add(this.mtx);
        
        this.pack();
        
    }
    

    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new MatrixFrame().setVisible(true);
            }
        });
    } // end method main()
    
    
}
Grazie mille in anticipo