Layout Managers

Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

LayoutManagers

The LayoutManagers are used to arrange components in a particular


manner. The layout manager determines
 The overall size of the container.
 The size of each element in the container.
 The spacing between elements.
 The positioning of the elements.

Some of Java’s AWT and Swing layout managers.

Manager Description

Arranges elements along the north, south, east,


java.awt.BorderLayout
west, and in the center of the container.

java.swing.BoxLayout Arranges elements in a single row or single column.

Arranges elements like a stack of cards, with one


java.awt.CardLayout
visible at a time.

java.awt.FlowLayout Arranges elements left to right across the container.

Arranges elements in a grid of variably sized cells


java.awt.GridBagLayout
(complicated).

Arranges elements into a two-dimensional grid of


java.awt.GridLayout
equally sized cells.

java.swing.OverlayLayout Arranges elements on top of each other.


Java BorderLayout

The BorderLayout is used to arrange the components in five regions: north,


south, east, west and center. Each region (area) may contain one
component only.

It is the default layout of frame or window. The BorderLayout provides five


constants for each region:

1. public static final int NORTH


2. public static final int SOUTH
3. public static final int EAST
4. public static final int WEST
5. public static final int CENTER

Constructors of BorderLayout class:

o BorderLayout(): creates a border layout but with no gaps between


the components.
o JBorderLayout(int hgap, int vgap): creates a border layout with
the given horizontal and vertical gaps between the components.

Example of BorderLayout class:


import java.awt.*;
import javax.swing.*;

public class Border {

JFrame f;
Border(){
f=new JFrame();

JButton b1=new JButton("NORTH");;


JButton b2=new JButton("SOUTH");;
JButton b3=new JButton("EAST");;
JButton b4=new JButton("WEST");;
JButton b5=new JButton("CENTER");;

f.add(b1,BorderLayout.NORTH);
f.add(b2,BorderLayout.SOUTH);
f.add(b3,BorderLayout.EAST);
f.add(b4,BorderLayout.WEST);
f.add(b5,BorderLayout.CENTER);

f.setSize(300,300);
f.setVisible(true);
}
public static void main(String[] args) {
new Border();
}
}
Java GridLayout
The GridLayout is used to arrange the components in rectangular grid. One
component is displayed in each rectangle.

Constructors of GridLayout class

1. GridLayout(): creates a grid layout with one column per component


in a row.
2. GridLayout(int rows, int columns): creates a grid layout with the
given rows and columns but no gaps between the components.
3. GridLayout(int rows, int columns, int hgap, int vgap): creates a
grid layout with the given rows and columns along with given
horizontal and vertical gaps.

Example of GridLayout class


import java.awt.*;
import javax.swing.*;

public class MyGridLayout{


JFrame f;
MyGridLayout(){
f=new JFrame();

JButton b1=new JButton("1");


JButton b2=new JButton("2");
JButton b3=new JButton("3");
JButton b4=new JButton("4");
JButton b5=new JButton("5");
JButton b6=new JButton("6");
JButton b7=new JButton("7");
JButton b8=new JButton("8");
JButton b9=new JButton("9");

f.add(b1);f.add(b2);f.add(b3);f.add(b4);f.add(b5);
f.add(b6);f.add(b7);f.add(b8);f.add(b9);

f.setLayout(new GridLayout(3,3));

f.setSize(300,300);
f.setVisible(true);
}
public static void main(String[] args) {
new MyGridLayout();
}
}
Java FlowLayout
The FlowLayout is used to arrange the components in a line, one after
another (in a flow). It is the default layout of applet or panel.

Fields of FlowLayout class

1. public static final int LEFT


2. public static final int RIGHT
3. public static final int CENTER
4. public static final int LEADING
5. public static final int TRAILING

Constructors of FlowLayout class

1. FlowLayout(): creates a flow layout with centered alignment and a


default 5 unit horizontal and vertical gap.
2. FlowLayout(int align): creates a flow layout with the given
alignment and a default 5 unit horizontal and vertical gap.
3. FlowLayout(int align, int hgap, int vgap): creates a flow layout
with the given alignment and the given horizontal and vertical gap.
Example of FlowLayout class
import java.awt.*;

import javax.swing.*;

public class MyFlowLayout{


JFrame f;

MyFlowLayout(){
f=new JFrame();

JButton b1=new JButton("1");


JButton b2=new JButton("2");
JButton b3=new JButton("3");
JButton b4=new JButton("4");
JButton b5=new JButton("5");

f.add(b1);f.add(b2);f.add(b3);f.add(b4);f.add(b5);

f.setLayout(new FlowLayout(FlowLayout.RIGHT));
//setting flow layout of right alignment

f.setSize(300,300);
f.setVisible(true);
}
public static void main(String[] args) {
new MyFlowLayout();
}
}
Java BoxLayout
The BoxLayout is used to arrange the components either vertically or
horizontally. For this purpose, BoxLayout provides four constants. They are
as follows:

Note: BoxLayout class is found in javax.swing package.

Fields of BoxLayout class

1. public static final int X_AXIS


2. public static final int Y_AXIS
3. public static final int LINE_AXIS
4. public static final int PAGE_AXIS

Constructor of BoxLayout class

1. BoxLayout(Container c, int axis): creates a box layout that


arranges the components with the given axis.

Example of BoxLayout class with Y-AXIS:


import java.awt.*;
import javax.swing.*;

public class BoxLayoutExample1 extends Frame {


Button buttons[];

public BoxLayoutExample1 () {
buttons = new Button [5];

for (int i = 0;i<5;i++) {


buttons[i] = new Button ("Button " + (i + 1));
add (buttons[i]);
}

setLayout (new BoxLayout (this, BoxLayout.Y_AXIS));


setSize(400,400);
setVisible(true);
}

public static void main(String args[]){


BoxLayoutExample1 b=new BoxLayoutExample1();
}
}
Example of BoxLayout class with X-AXIS

You might also like