Prova ad impostare il bounds a mainpanel prima di aggiungerlo al frame.
Ad es: mainPanel.setBounds(0, 0, 600, 400)
Oppure solo la location: mainPanel.setLocation(0, 0)
Non so se è la soluzione giusta ma ho avuto problemi simili per questo motivo. Ciao