both approaches are feasable though i would probably rule out #2 on account of it being difficult to implement.
if i went route 1 I'd probably try something like FlowlLayout with some JPanels but in the past I've never really gotten decent results from trying to get things to the size I really want them, usually layout managers like to size everything for you.