new JLabel[3][3] istanzia solo ed esclusivamente l'array bidimensionale. Ma NON istanzia i singoli oggetti contenuti. Sei tu che devi istanziare ciascun JLabel invocando uno dei suoi costruttori e poi assegnarlo in una cella dell'array labels, chiaramente prima di usare la cella nel resto del codice.
P.S. scusa la franchezza ma arrivare a fare interfacce grafiche con questi dubbi sugli array .... non è particolarmente bello.![]()