Pagina 2 di 11 primaprima 1 2 3 4 ... ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 108

Discussione: Problema con JFrame

  1. #11
    Utente di HTML.it
    Registrato dal
    Oct 2014
    residenza
    Padova
    Messaggi
    361
    Quote Originariamente inviata da tonino1 Visualizza il messaggio
    Nella classe contatto ho provato a inserire un'ArrayList e popolarla con l'istruzione che hai dato tu. Ma poi quando vado nella classe FinestraVisualizzaContatto e la istanzio non funziona.
    No, hai frainteso, l'ArrayList non va nella classe Contatto! Come dicevo Contatto è la tua entità di base, non ha senso che un contatto "sappia" che esistono altri contatti, ognuno è una cosa a sé stante.

    Ci sono diversi modi per rendere l'ArrayList di contatti visibile a tutte le tue classi, alcuni sono un po' complicati quindi per ora ti consiglio il più semplice.
    Per ora tutte le tue classi sono "innestate" dentro alla classe Rubrica, quindi ogni variabile dichiarata in Rubrica è visibile a tutte le tue classi.
    Quindi ti basta dichiarare l'ArrayList di contatti come variabile di istanza di Rubrica. Facendo lo scheletro delle tue classi, intendo una cosa del genere:

    codice:
    public class Rubrica
    {    
        private ArrayList<Contatto> contatti;    
        class Contatto
        {
            
        }
        public class FinestraVisualizzaContatto
        {         
            
        }
        public class FinestraAggiungiContatto
        {
            
        }
        public class FinestraModificaContatto
        {
           
        }
        public class FinestraRimuoviContatto
        {
           
        }
    }
    Inoltre l'ArrayList non va istanziata nella classe FinestraVisualizzaContatto, perchè la sovrascriveresti all'apertura di ogni frame di quel tipo.
    L'inizializzazione va fatta una sola volta, quindi ti consiglio di farla direttamente nel metodo main, priva di costruire un'istanza della classe Rubrica , o volendo anche nel costruttore di Rubrica, se ipotizzi di volere creare più di una Rubrica e quindi di volere separare le liste di contatti delle diverse Rubriche.

  2. #12
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    213
    Scusami ancora c'è qualcosa che non mi quadra. Quando istanzio l'arraylist nel costruttore di rubrica non mi riconosce gli argomenti della classe Contatto: contatti.add(new Contatto(nome,cognome,telefono,email)).Stessa cosa nel main. Mi sa che mi devo andare a rivedere i fondamentali.

  3. #13
    Utente di HTML.it
    Registrato dal
    Oct 2014
    residenza
    Padova
    Messaggi
    361
    Quote Originariamente inviata da tonino1 Visualizza il messaggio
    Scusami ancora c'è qualcosa che non mi quadra. Quando istanzio l'arraylist nel costruttore di rubrica non mi riconosce gli argomenti della classe Contatto: contatti.add(new Contatto(nome,cognome,telefono,email)).Stessa cosa nel main.
    Per istanziare l'ArrayList si intende che devi solo crearla :

    codice:
    contatti = new ArrayList<Contatto>();
    Solo questo devi inserire nel costruttore di Rubrica, o nel metodo main se non ti importa di avere più Rubriche per ora.
    Poi l'aggiunta dei contatti non devi farla direttamente lì, o meglio puoi farla per vedere se funziona, ma devi "inventarti" tu 4 stringhe da passare al costruttore di Contatto, senza aver letto dai textfield quello che ha inserito l'utente.

    Qual' è l'errore che ricevi quando dici "non mi riconosce gli argomenti della classe Contatto" ?
    Se hai definito nel modo corretto il costruttore di Contatto, con quelle 4 stringhe in ingresso, probabilmente l'errore è che le variabili che passi al costruttore non sono definite da nessuna parte...

    Quote Originariamente inviata da tonino1 Visualizza il messaggio
    Mi sa che mi devo andare a rivedere i fondamentali.
    E' una buona cosa che venga da te questa proposta, nel senso che continuare a posticipare un bel ripasso rischia di farti perdere molto più tempo

    Se posso darti un consiglio parti da come utilizzare i metodi, definire i costruttori, riempire e modificare le strutture dati come array e liste (di cui ArrayList è un esempio) etc...

    Una volta che ti sono chiari questi concetti, puoi anche riprendere in mano la tua Rubrica, ma sarebbe meglio evitare ancora la parte grafica, che è uno step successivo.
    Prova cioè a realizzare la tua rubrica senza utilizzare le finestre, ma inserendo da console i dati, così focalizzerai il problema sul popolamento della lista, la modifica dei contatti, l'inserimento, la rimozione...

  4. #14
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    213
    Mannaggia, mi sembrava di essere vicino a completare la Rubrica. La parte grafica non mi da grossi problemi. Inserire metodi, parametri, classi e richiamarli quello si che mi portano il 90% del tempo. Però ci sono cose che nessun libro o guida ti dice ed è li che perdo il tempo a fare tentavi.Conosci qualche buona guida?
    Ciao

  5. #15
    Utente di HTML.it
    Registrato dal
    Oct 2014
    residenza
    Padova
    Messaggi
    361
    Quote Originariamente inviata da tonino1 Visualizza il messaggio
    Mannaggia, mi sembrava di essere vicino a completare la Rubrica. La parte grafica non mi da grossi problemi. Inserire metodi, parametri, classi e richiamarli quello si che mi portano il 90% del tempo. Però ci sono cose che nessun libro o guida ti dice ed è li che perdo il tempo a fare tentavi.Conosci qualche buona guida?
    Ciao
    A essere onesto non direi che la parte grafica non crei molti problemi, nel codice che hai postato ho fatto qualche critica ma davvero molto non va.
    Non lo dico per scoraggiarti, è solo un consiglio, mettila un attimo da parte e aspetta di avere un po' più di scioltezza col resto.

    Purtroppo non so consigliarti quale sia la miglior guida, quella che c'è qui sul forum è sicuramente un buon inizio e io l'ho letta, ma non posso fare paragoni perché ho letto davvero poco in generale.
    Di libri ho sentito parlare molto bene del manuale di Claudio De Sio, ma anche qui non l'ho letto

    La cosa importante è non aver lasciarsi dubbi indietro, fermati appena c'è qualcosa che non capisci e cerca online se non hai un buon libro, anche solo sui forum ci sono tonnellate di discussioni

  6. #16
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    213
    Allora faccio il punto. Ho riscritto il codice e al posto delle classi ho inserito vari metodi per la funzione rubrica. Quello che non mi riesce e' richiamare la stessa arraylist presente nel metodo InserisciContatto nel metodo Salva per salvare i dati in un file. Non riesco a estrarre i dati di questa lista presente nel metodo Salva che e' presente anche nel metodo inserisciContatto. Come posso fare?

  7. #17
    Utente di HTML.it
    Registrato dal
    Oct 2014
    residenza
    Padova
    Messaggi
    361
    Dove è definita l'arraylist di contatti? La ricrei all'interno dei metodi?

    Se hai seguito lo schemino che avevo buttato giù nel post #11, l'ArrayList<Contatto> contatti dovrebbe essere definita in unico posto, dove sia visibile a tutte le classi/metodi (ripeto che non è l'unica soluzione, ma la più semplice nel tuo caso).
    Anche l'inizializzazione va fatta una volta sola, forse l'errore è che la ricrei all'interno di qualche metodo?

    Prova a postare il codice e vediamo cosa non va

  8. #18
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    213
    In effetti arraylisr<Contatto> non l'ho piu' utilizzato perche' poi non so come estrarre i dati. Mentre per l'arraylist semplice so che si fa:
    for(int i=0;i<contarti.size();i++){
    System.out.println(contatti.get(i))
    }

    Ora non posso postarti il codice. Piu' tardi capirai. Praticamente al posto delle classi ho utilizzato i metodi.L'array list l'ho dichiarata all'inizio della classe. Poi nel metodo inserisciContatto l'ho riempita. Quando vado a richiamare la stessa arraylist in un altro metodo( devo ancora vedere come si istanzia nell'altro metodo) mi restituisce null. Ho provato anche con quello che hai detto te:
    contatti.add(new Contatto(nome,cognome,telefono,email) quando utilizzavo le classi. Ma anche qui non so come si estraggono i dati.

  9. #19
    Utente di HTML.it
    Registrato dal
    Oct 2014
    residenza
    Padova
    Messaggi
    361
    Quote Originariamente inviata da tonino1 Visualizza il messaggio
    In effetti arraylisr<Contatto> non l'ho piu' utilizzato perche' poi non so come estrarre i dati. Mentre per l'arraylist semplice so che si fa:
    for(int i=0;i<contarti.size();i++){
    System.out.println(contatti.get(i))
    }

    Però con queste lacune non puoi davvero andare avanti, fermati un attimo a guardare come usare le strutture dati e gli oggetti in generale...

    Cioè "estrarre" il dato da un ArrayList<Contatto> è esattamente lo stesso che farlo da un ArrayList<String> (tanto per fare l'esempio che avevi tu), solo che poi invece di avere in mano una stringa, che è più immediata da gestire (come nel tuo codice dove fai la stampa a video), hai un Contatto, un oggetto da cui devi estrarre i dati con metodi appositi (se segui l'esempio che ti avevo postato, basta utilizzare quei metodi getNome(), getCognome() ...).


    L'array list l'ho dichiarata all'inizio della classe. Poi nel metodo inserisciContatto l'ho riempita. Quando vado a richiamare la stessa arraylist in un altro metodo( devo ancora vedere come si istanzia nell'altro metodo) mi restituisce null.
    Intanto non ho mai detto di istanziarla nell'altro metodo, anzi ho sempre detto l'esatto contrario, devi istanziarla una sola volta.
    Se poi ti stai riferendo alla stessa ArrayList e ti restituisce null allora sei in uno dei seguenti casi (non vedo altre possibilità ora come ora):

    - Il metodo a cui ti riferisci viene richiamato prima che l' ArrayList sia effettivamente creata, quindi l'oggetto è ancora null
    - L'ArrayList viene istanziata ma poi tu la setti a null (non so perché dovresti farlo, anche involontariamente è improbabile)
    - Tu pensi di stare accedendo alla stessa arrayList ma in realtà sono due oggetti diversi

    Onestamente fatico a capire perché tu non possa postare il codice, comunque senza averlo siamo al punto di tirare ad indovinare, fai un po' di chiarezza please ...

  10. #20
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    213
    Non posto il codice perche' semplicemente sono fuori casa e ti sto rispondendo dal Cell. Scusami. Comunque credo di aver capito. Appena posso ti posto il codice modificato.

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.