GridLayout ensures that each cell is the same width & height as the others. Sounds like part of what you need is a layout manager that honors your components' preferred sizes. GridBagLayout is one...