Buongiorno a tutti

Ho già cercato nel forum e su internet, e pur avendo trovato qualcosa del genere non sono riuscito a trovare quello che mi serve

Sto cercando di creare un calendario in java con le matrici, è un esercizio che devo fare per la scuola, il progetto è ben più ampio ma mi sono arenato ad un certo punto;

Ho due classi, la SWING, si chiama Home mentre la classe della matrice si chiama appunto matrice

nella classe dove c'è la SWING ho creato questo codice:

codice:
public class Home extends javax.swing.JFrame {
        GregorianCalendar gc = new GregorianCalendar();
        Eventi ev = new Eventi();
        Orario or = new Orario();
        
        Integer GG;
        Integer MM;
        Integer AA;
        Integer OR;
        Integer MN;
        Matrice m1;
        Matrice m2;
        Matrice m3;
    
    public Home(String s) {
        GG = gc.get(GregorianCalendar.DAY_OF_MONTH);
        MM = gc.get(GregorianCalendar.MONTH);
        AA = gc.get(GregorianCalendar.YEAR);
        OR = gc.get(GregorianCalendar.HOUR);
        MN = gc.get(GregorianCalendar.MINUTE);
        m1 = new Matrice(AA, MM, GG);
        m2 = new Matrice(AA, MM - 1, GG);
        m3 = new Matrice(AA, MM + 1, GG);
invece nella classe Matrice ho questo:

codice:
public class Matrice extends AbstractTableModel {
   
    private Integer gg;
    private Integer nRighe = 5;
    private Integer nColonne = 7;
    private Integer[][] matrice;
    public Matrice(int Anno,int Mese,int Giorno) {
      matrice = new Integer[nRighe][nColonne];
      GregorianCalendar cal = new GregorianCalendar(Anno, Mese, 0);
      GregorianCalendar Lun = new GregorianCalendar(30,11,2013);
      gg= cal.get(GregorianCalendar.DAY_OF_WEEK);
      Lun.roll(GregorianCalendar.DATE,-gg );
           for (int i = 0; i < nRighe; i++) {
            for (int j = 0; j < nColonne; j++) {
                matrice[i][j] = cal.get(GregorianCalendar.DATE);
                   cal.add(GregorianCalendar.DATE, 1);
             }
        }

In pratica nella SWING ho 3 calendari che servono per visualizzare, il calendario del mese corrente (m1) il calendario del mese precedente (m2) il calendario del mese successivo (m3)

ora, il problema è che i calendari sono sbagliati, e ho anche capito il motivo,
Il mio calendario funziona che trova la data del primo del mese corrente e torna indietro di tot giorni quanti bastano per visualizzarlo in modo corretto, per esempio:

30 31 1 2 3 4 5
6 7 ecc ecc..

il problema è che impostando il calendario come l'ho impostato io i giorni tolti (day_of_the_week) sono sempre 1 perché nel costruttore qualsiasi sia il mese lui riconosce come parametro il valore 1 anche se magari è mercoledì e io vorrei che mercoledì fosse segnato come valore 3 visto che se parto a contare i giorni da domenica (come fa il mio costruttore) mercoledì è appunto il giorno 3, solo che in questo progetto così come è ora io torno indietro sempre di un giorno perché lavoro sull'altro costruttore

spero di essere stato chiaro

grazie a chi proverà ad aiutarmi

Lorenzo^^