Hola:
En un GridLayout todos los componentes quedan del mismo tamaño, del tamaño del más grande, no hay nada que puedas hacer para evitarlo.
En su lugar, usa un GridBagLayout, ahí cada componente ocupa lo que necesita y además puedes hacerle ajustes. Aquí tienes un pequeño tutorial
http://www.chuidiang.com/java/layout...dBagLayout.php
Se bueno.