Ciao, benvenuto nel forum

La tua finestra non si chiude perché hai scritto il metodo windowClosing con la prima "w" maiuscola, quindi il tuo metodo non fa l'ovveride del metodo definito in WindowAdapter e pertanto non viene richiamato dalla pressione del pulsante per chiudere la finestra.

Quando fai l'ovveride di un metodo puoi utilizzare l'annotazione @Override prima della scrittura del metodo: in questo modo se sbagli a scrivere la definizione del metodo o un tipo di parametro, ricevi un errore in compilazione se il metodo che stai definendo non è effettivamente l'override di un metodo di una superclasse.

Comunque se il comportamento che vuoi ottenere alla chiusura della finestra è semplicemente la terminazione del programma e nulla di più, è superfluo creare un WindowAdapter e puoi utilizzare la semplice istruzione:

codice:
finestra.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);