Il problema sta nel fatto che tu ad ogni ciclo del for crei un nuovo jbutton e lo assegni a bposto quindi alla fine essa conterrà l'ultimo bottone creato, per risolvere hai diversi modi, recuperi il bottone dalla lista, recuperi il bottone dal actionevent (getSource ti restituisce un object quindi devi fare un cast a jbutton) oppure la soluzione secondo me migliore cioè passi al tuo listener anche il bottone su cui agire