Che non devi "fissarti" sul fatto che la variabile (se non usi un array) è una sola .... perché magari serve solo come variabile temporanea.
Spiego con esempio abbozzato:
codice:for (int i = 0; ................) { JButton button = new JButton( .....etichetta..... ); int dato = ..........; button.addActionListener(new MyActionListener(dato)); pannello.add(button); }
Anche se la variabile 'button' (e 'dato') è una sola e ad ogni ciclo ha un reference ad un nuovo JButton, non importa qui. Quello che importa è aver agganciato il pulsante al suo listener con il suo dato e aver inserito il pulsante nel pannello (che potrebbe avere es. un GridLayout).
Certo, qui non ho usato un array, quindi successivamente non puoi fare: "voglio il JButton i-esimo" ma .... magari non ti serve nemmeno visto che tutto è incapsulato/agganciato a dovere (ogni JButton ha il suo oggetto listener e ognuno di questi ha il suo dato).
Non necessariamente ... e visto lo scenario che hai descritto, direi di no.
Sì, però se vuoi una griglia devi stabilire alcune cose: cosa imponi? il numero di colonne? o di righe? o è in base al numero di pulsanti? (es. cose particolari tipo: fino a 9 usi 3 colonne, fino a 16 usi 4 colonne, ecc....)
Cerca di precisare, se vuoi risposte o comunque avere chiaro cosa vuoi ottenere.![]()