Se vuoi posizionare e dimensionare tu a mano i componenti, non devi usare i LayoutManager.

Quindi, devi impostare a null il LayoutManager (che di default, sarà quello previsto per la classe che usi) e non crearne uno (stai creando un GridLayout).

codice:
panel.setLayout( null );
Il setBounds() sul "panel" non ha alcun effetto: panel, infatti, viene aggiunto alla finestra, che gestisce il suo contenuto tramite il suo LayoutManager.

Sono i singoli pannelli che devono essere posizionati e dimensionati ( con setBounds() ) ed il LayoutManager va tolto, appunto, dal pannello che li contiene.


Ciao.