salve ragazzi,
ho un problema alquanto banale... ma sinceramente mi sta facendo perdere un po' di tempo...
vorrei gestire all'interno di una classe Contenitore il listener implementato all'interno di una classe (ClassInside) contenuta in Contenitore...
a dire il vero il problema è addirittura più banale, in quanto... riesco a gestire il listener ... ma ho dei problemi riguardo a raccoglierne i frutti dell'esecuzione...
in quanto il metodo che dovrebbe recuperarli (nella classe Contenitore) prosegue l'esecuzione senza "aspettare" che il listener abbia concluso... beccando di conseguenza dei valori nulli...
la spiegazione forse lascia a desiderare... vi allego una sorta di pseudocode
dove ho inserito la freccia ovviamente mi da errore... ho provato a modificarlo con qualcosa del tipocodice:public class Contenitore { ClassInside inside; // altro... private void attivaList(){ this.inside.attiva(); } public void esegui(){ this.attivaList(); Object = inside.getObj(); // <-- // errore... l'ogetto è nullo // } } public class ClassInside implements MouseListener { // altro... private Object Oggetto = null; private boolean flag = false; private boolean fatto = false; public void attiva(){ this.flag = true; } public boolean isCreated(){ return this.fatto; } public Object getObj(){ return Oggetto; } @Override public void mouseClicked(MouseEvent arg0) { // atro codice.... necessario per la classe if(this.flag){ Oggetto = creaOggetto(); this.flag = false; this.fatto = true; } } }
ma questa "rozza" soluzione ... ovviamente non funziona affatto...codice:while(!inside.isCreated()) { }
cosa mi sfugge? .. svegliatemi!