Il LayoutManager più flessibile che ci sia è GridBagLayout, per certi versi simile al GridLayout, ma con la possibilità di specificare per ciascuna "cella" quanto spazio in orizzontale ed in verticale andrà ad occupare.
GridBagLayout - Swing Tutorial