Nel costruttore del listener tu non chiami nessuno JButton ma ti arriva l'iconea associato al JButtonIn che senso? Nel costruttore del listener mi chiamo il JButton e fin qui non è un problema
L'errore sta in questo punto
Cioè bPosto conterrà l'ultimo jbutton che crei, quindi quando poi verrà scatenato il listener e tu invochi "bPosto.setIcon" lo invochi appunto sull'ultimo bottone creato.codice:for(int j=1;j<=posti;j++){ .... bPosto=new JButton(libero); .... }
Ovviamente il bottone lo puoi passare al costruttore del listener:
Inoltre volendo a questo punto potresti anche omettere di passare l'iconea che cmq ti potresti recuperare dal button passato.codice:class Seleziona implements ActionListener{ private char f; private int p; private Icon disp; private JButton button; public Seleziona(char f,int p,JButton button,Icon disp){ this.f=f; this.p=p; this.disp=disp; this.button = button; } public void actionPerformed(ActionEvent e){ if(disp==libero) button.setIcon(selezionato); if(disp==selezionato) button.setIcon(occupato); } } //PASSAGGIO DEL VALORE NEL FORM ActionListener listSelezione=new Seleziona(i,j,bPosto,bPosto.getIcon());

Rispondi quotando