Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Costrtuire una SWING Calendario con le Matrici usando il GregorianCalendar [JAVA]

    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^^

  2. #2
    e quindi?
    Qual'è la richiesta?
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  3. #3
    di riuscire a creare un calendario che funzioni perché questo calendario è sbagliato visto che quando deve "tornare indietro" dal primo del mese non lo fa in maniera corretta ma toglie solo il valore 1

  4. #4
    BEh possiamo aiutarti se hai un particolare problema ma farlo di sana pianta....
    Illustraci chiaramente dove può stare il problema e poi ti possiamo dare suggerimenti a riguardo.

    Ciao
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.