Layouts tell Java where to put components in
JPanel, content pane, etc).
Every panel (and other container) has a default layout,
but it's better to set the layout explicitly for clarity.
Create a new layout object (using one of its
constructors) and use the container's
setLayout method to
set the layout. Each layout has its own way to resize components
to fit the layout, and you must become familiar with these.
Tools. Creating your layouts by hand is simple for the simple layouts, but for really good layouts using the difficult GridBagLayout, you might want to use a program to help you. A good review of some of these programs is at Java GUI Builders (www.fullspan.com/articles/java-gui-builders.html) by Mitch Stuart.
FlowLayout. The result is often ugly, but if there are only a few components, it's quick.
FlowLayoutis rarely the correct layout to use in a finished program.
BorderLayoutis often a good layout for simple programs. More complicated layouts can often be nesting
BorderLayouts within other
BorderLayouts. This and
FlowLayoutare the most important layouts for beginners.
GridBagLayout. Getting a
GridBagLayoutto work correctly can be time-consuming, but it produces excellent results.
SpringLayoutwas added in Java 1.4, but is difficult for humans. It is rumored to be intended for authomatic layout programs..
CardLayoutis good for something like a wizard interface which shows one of several possible layouts (think about a stack of index cards). Tabbed panes are something like a card layout with tabs.