Consider using BorderLayout or GridBagLayout . If you use BorderLayout, you'll need to put the space-hungry component in the center. Or, if you don't mind every other component in the same container being just as large as your space-hungry component, you can use a GridLayout . Consider using a Panel to hold the components and using the Panel's default FlowLayout manager. GridLayout is perfect for this.
Every container has a default layout manager associated with it.
If you want to use a Container's default layout manager, you don't have to do a thing. The constructor for each Container creates a layout manager instance and initializes the Container to use it. To use a non-default layout manager, you need to create an instance of the desired layout manager class and tell the Container to use it. Below is some typical code that does this. This code creates a CardLayout manager and sets it up as the layout manager for a Container.