Quote Originariamente inviata da andbin Visualizza il messaggio
Ok, va bene, se il senso e l'obiettivo è questo, non ho altre obiezioni.
Soluzione 2)
In AnagraficaEditFrame metti un metodo esposto all'esterno es. public void addConfermaActionListener(ActionListener). Esso farà semplicemente da passacarte e passerà il ActionListener al addActionListener del JButton "Conferma".
Sempre in AnagraficaEditFrame metti un metodo esposto all'esterno es. public Anagrafica getAnagrafica() che prende i dati dai componenti, crea un Anagrafica e lo restituisce.
Poi in AnagraficheFrame implementi un ActionListener (come/dove non è molto importante) e lo passi al addConfermaActionListener invocato chiaramente sulla istanza di AnagraficaEditFrame.
Qui il succo è che quando "Conferma" viene azionato, il listener notificato è in AnagraficheFrame invece che in AnagraficaEditFrame. Il suo actionPerformed semplicemente invocherà getAnagrafica sul AnagraficaEditFrame e siamo allo stesso punto della soluzione 1, cioè in AnagraficheFrame hai un oggetto Anagrafica da inserire nella tabella.
La prima soluzione sono riuscito a comprenderla perfettamente e rimpiango il fatto che non ci abbia pensato prima ahahah
La seconda soluzione invece non l'ho capita molto, anche perché non sono molto pratico degli ActionListener. Da quello che ho capito il gestore dell'evento generato quando si preme il pulsante di conferma in AnagraficaEditFrame viene passato ad AnagraficheFrame il quale, al verificarsi dell'evento, richiamerà un metodo che restituisce un oggetto basandosi sui dati inputati nella finestra AnagraficaEditFrame. In modo pratico, come si fa a passare l'ActionListener, puoi farmi un piccolissimo esempio? Inoltre, dopo aver passato l'ActionListener ad AnagraficheFrame, questo potrà comunque continuare ad essere utilizzato nella finestra originale, AnagraficaEditFrame?