Javier ha scritto:
private JButton irlanda,regnounito,islanda;
private JButton array[] = {irlanda, regnounito, islanda};
Questo è già un problema concettuale che forse non hai ancora compreso. La esecuzione degli inizializzatori delle variabili di istanza avviene poco dopo la invocazione del super-costruttore (il costruttore della super-classe) e
prima della esecuzione del corpo del tuo costruttore.
L'array di JButton viene creato con i valori di irlanda, regnounito, islanda che ci sono in quel momento. E in quel preciso momento sono
null.
Il fatto che poi dopo, nel costruttore, assegni qualcosa alle tre variabili irlanda, regnounito, islanda, NON cambia ciò che è stato messo nell'array durante la costruzione di quell'array.