Altra soluzione consiste nell'utilizzare un metodo della classe per far fare al tuo listener quel che gli paer con le variabili d'istanza:
Altra soluzione ancora consiste nel passare al tuo Listener un riferimento alla variabile che intendi fargli utilizzare. In questo caso devi scrivere una classe che implementa il Listener che ti serve. Quindi istanzi un oggetto di tale classe passando (al costruttore, ad esempio) il riferimento all'oggetto.codice:public class TuaClasse { private int a; ... public void tuoMetodo() { tuoOggetto.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent ae) { metodoRichiamato(); } }); } ... public void metodoRichiamato() { // Fai quel che vuoi con 'a' } }
Ecco l'esempio:
La terza soluzione consiste nel passare all'ascoltatore (implementato come classe a se stante) un riferimento alla classe che contiene l'oggetto che viene monitorato. In questo caso, predisponi nella classe (chiamiamola "principale") dei metodi per poter accedere alla variabile/oggetto che il tuo listener deve manipolare.codice:public class MioAscoltatore implements ActionListener { private int var; public MioAscoltatore(int var) { this.var = var; } public void actionPerformed(ActionEvent ae) { // Utilizza var } } ... public void tuoMetodo() { tuoOggetto.addActionListener( new MioAscoltatore(a) ); }
Ciao.![]()



Rispondi quotando