Anchoring and Docking Controls in java Swing
Java Swing uses Layout Managers to manage the size and postion of visual components. This is the official java tutorial on how to use this Layout managers:
http://java.sun.com/docs/books/tutorial/uiswing/layout/using.html
And there is a brief description of the most common layout managers
FlowLayout (default): it disposes the components left to right and up to down.
BorderLayout: it divides the container in NORTH, SOUTH, WEST, EAST center CENTER. Only one component by position. Components on border expands and the center component uses the space avaiable
GridLayout: you initialice the manager indicating how many rows and cols the grid is going to have. Each cell has same size and you start adding component on the top left cell.
GridBagLayout: the MOST fine grained layout manager, you can do anything with this, but is a bit complicated, see the java documentation for it.
NullLayout (when you nullify the container's layout manayer): no layout manager, components uses the location and size properties to show on components.
And of course, containers inside in other containers can use a different layout manager than their parent. Combining layout managers is a difficult art to learn.