SWING - Layouts

Layout refers to the arrangement of components within the container. In another way, it could be said that layout is placing the components at a particular position within the container. The task of laying out the controls is done automatically by the Layout Manager.

Layout Manager

The layout manager automatically positions all the components within the container. Even if you do not use the layout manager, the components are still positioned by the default layout manager. It is possible to lay out the controls by hand, however, it becomes very difficult because of the following two reasons.

  • It is very tedious to handle a large number of controls within the container.

  • Usually, the width and height information of a component is not given when we need to arrange them.

Java provides various layout managers to position the controls. Properties like size, shape, and arrangement varies from one layout manager to the other. When the size of the applet or the application window changes, the size, shape, and arrangement of the components also changes in response, i.e. the layout managers adapt to the dimensions of the appletviewer or the application window.

The layout manager is associated with every Container object. Each layout manager is an object of the class that implements the LayoutManager interface.

Following are the interfaces defining the functionalities of Layout Managers.

Sr.No. Interface & Description
1 LayoutManager

The LayoutManager interface declares those methods which need to be implemented by the class, whose object will act as a layout manager.

2 LayoutManager2

The LayoutManager2 is the sub-interface of the LayoutManager. This interface is for those classes that know how to layout containers based on layout constraint object.

AWT Layout Manager Classes

Following is the list of commonly used controls while designing GUI using AWT.

Sr.No. LayoutManager & Description
1 BorderLayout

The borderlayout arranges the components to fit in the five regions: east, west, north, south, and center.

2 CardLayout

The CardLayout object treats each component in the container as a card. Only one card is visible at a time.

3 FlowLayout

The FlowLayout is the default layout. It layout the components in a directional flow.

4 GridLayout

The GridLayout manages the components in the form of a rectangular grid.

5 GridBagLayout

This is the most flexible layout manager class. The object of GridBagLayout aligns the component vertically, horizontally, or along their baseline without requiring the components of the same size.

6 GroupLayout

The GroupLayout hierarchically groups the components in order to position them in a Container.

7 SpringLayout

A SpringLayout positions the children of its associated container according to a set of constraints.