Credo di aver risolto...
.... in pratica assegnavo l'action ai pulsanti in un'altra Classe
richiamando la Classe stessa e non l'istanza che crea i pulsanti....
Esempio:
classe costruttrice del JPanel con i pulsanti: ClassePulsanti
In un'altra classe dove creavo un altro JPanel e assegnavo l'action
ai pulsanti, l'assegnazione la facevo così:
codice:
.....
ClassePulsanti panelPulsanti = new ClassePulsanti();
ClassePulsanti.pulsanteA.addActionListener(new ActionBtn());
ClassePulsanti.pulsanteB.addActionListener(new ActionBtn());
ClassePulsanti.pulsanteC.addActionListener(new ActionBtn());
....
public class ActionBtn implements ActionListener {
public void actionPerformed (ActionEvent e) {.....
Quindi, credo che l'errore era questo, poiché cancellando un JPanel che
ne contiene gli altri, io cancellavo le istanze ma facendo l'assegnazione
richiamando la Classe, questa non veniva cancellata, perciò conservava
l'azione e ogni volta che i pannelli venivano ridisegnati assegnavo nuovamente
un'altra Action agli stessi pulsanti!!!
Corretto così il codice funziona:
codice:
.....
ClassePulsanti panelPulsanti = new ClassePulsanti();
panelPulsanti.pulsanteA.addActionListener(new ActionBtn());
panelPulsanti.pulsanteB.addActionListener(new ActionBtn());
panelPulsanti.pulsanteC.addActionListener(new ActionBtn());
....
public class ActionBtn implements ActionListener {
public void actionPerformed (ActionEvent e) {.....
Non è che aggiungi più volte lo stesso action listener al pulsante?
E in sostenza avveniva quello che dici tu!!
Grazie dell'attenzione