Laying Out Components within a Container |
Here's an applet that shows a BorderLayout in action.
As the above applet shows, a BorderLayout has five areas: north, south, east, west, and center. If you enlarge the window, you'll see that the center area gets as much of the newly available space as possible. The other areas expand only as much as necessary to keep all available space filled.
Below is the code that creates the BorderLayout and the components it manages. Here's the whole program. The program runs either within an applet, with the help of AppletButton, or as an application. The first line shown below is actually unnecessary for this example, since it's in a Window subclass and each Window already has an associated BorderLayout instance. However, the first line would be necessary if the code were in a Panel instead of a Window.
setLayout(new BorderLayout()); setFont(new Font("Helvetica", Font.PLAIN, 14)); add("North", new Button("North")); add("South", new Button("South")); add("East", new Button("East")); add("West", new Button("West")); add("Center", new Button("Center"));Important: When adding a component to a container that uses BorderLayout, you must use the two-argument version of the
add()
method, and the first argument must be"North"
,"South"
,"East"
,"West"
, or"Center"
. If you use the one-argument version ofadd()
, or if you specify an invalid first argument, your component might not be visible.By default, a BorderLayout puts no gap between the components it manages. In the applet above, any apparent gaps are the result of the Buttons reserving extra space around their apparent display area. You can specify gaps (in pixels) using the following constructor:
public BorderLayout(int horizontalGap, int verticalGap)
Laying Out Components within a Container |