public class

FlowLayout

extends Object
implements LayoutManager Serializable
java.lang.Object
   ↳ java.awt.FlowLayout
Known Direct Subclasses

Class Overview

A flow layout arranges components in a directional flow, much like lines of text in a paragraph. The flow direction is determined by the container's componentOrientation property and may be one of two values:

  • ComponentOrientation.LEFT_TO_RIGHT
  • ComponentOrientation.RIGHT_TO_LEFT
Flow layouts are typically used to arrange buttons in a panel. It arranges buttons horizontally until no more buttons fit on the same line. The line alignment is determined by the align property. The possible values are:

For example, the following picture shows an applet using the flow layout manager (its default layout manager) to position three buttons:

Graphic of Layout for Three Buttons

Here is the code for this applet:


 import java.awt.*;
 import java.applet.Applet;

 public class myButtons extends Applet {
     Button button1, button2, button3;
     public void init() {
         button1 = new Button("Ok");
         button2 = new Button("Open");
         button3 = new Button("Close");
         add(button1);
         add(button2);
         add(button3);
     }
 }
 

A flow layout lets each component assume its natural (preferred) size.

Summary

Constants
int CENTER This value indicates that each row of components should be centered.
int LEADING This value indicates that each row of components should be justified to the leading edge of the container's orientation, for example, to the left in left-to-right orientations.
int LEFT This value indicates that each row of components should be left-justified.
int RIGHT This value indicates that each row of components should be right-justified.
int TRAILING This value indicates that each row of components should be justified to the trailing edge of the container's orientation, for example, to the right in left-to-right orientations.
Public Constructors
FlowLayout()
Constructs a new FlowLayout with a centered alignment and a default 5-unit horizontal and vertical gap.
FlowLayout(int align)
Constructs a new FlowLayout with the specified alignment and a default 5-unit horizontal and vertical gap.
FlowLayout(int align, int hgap, int vgap)
Creates a new flow layout manager with the indicated alignment and the indicated horizontal and vertical gaps.
Public Methods
void addLayoutComponent(String name, Component comp)
Adds the specified component to the layout.
boolean getAlignOnBaseline()
Returns true if components are to be vertically aligned along their baseline.
int getAlignment()
Gets the alignment for this layout.
int getHgap()
Gets the horizontal gap between components and between the components and the borders of the Container
int getVgap()
Gets the vertical gap between components and between the components and the borders of the Container.
void layoutContainer(Container target)
Lays out the container.
Dimension minimumLayoutSize(Container target)
Returns the minimum dimensions needed to layout the visible components contained in the specified target container.
Dimension preferredLayoutSize(Container target)
Returns the preferred dimensions for this layout given the visible components in the specified target container.
void removeLayoutComponent(Component comp)
Removes the specified component from the layout.
void setAlignOnBaseline(boolean alignOnBaseline)
Sets whether or not components should be vertically aligned along their baseline.
void setAlignment(int align)
Sets the alignment for this layout.
void setHgap(int hgap)
Sets the horizontal gap between components and between the components and the borders of the Container.
void setVgap(int vgap)
Sets the vertical gap between components and between the components and the borders of the Container.
String toString()
Returns a string representation of this FlowLayout object and its values.
[Expand]
Inherited Methods
From class java.lang.Object
From interface java.awt.LayoutManager

Constants

public static final int CENTER

This value indicates that each row of components should be centered.

Constant Value: 1 (0x00000001)

public static final int LEADING

This value indicates that each row of components should be justified to the leading edge of the container's orientation, for example, to the left in left-to-right orientations.

Constant Value: 3 (0x00000003)

public static final int LEFT

This value indicates that each row of components should be left-justified.

Constant Value: 0 (0x00000000)

public static final int RIGHT

This value indicates that each row of components should be right-justified.

Constant Value: 2 (0x00000002)

public static final int TRAILING

This value indicates that each row of components should be justified to the trailing edge of the container's orientation, for example, to the right in left-to-right orientations.

Constant Value: 4 (0x00000004)

Public Constructors

public FlowLayout ()

Constructs a new FlowLayout with a centered alignment and a default 5-unit horizontal and vertical gap.

public FlowLayout (int align)

Constructs a new FlowLayout with the specified alignment and a default 5-unit horizontal and vertical gap. The value of the alignment argument must be one of FlowLayout.LEFT, FlowLayout.RIGHT, FlowLayout.CENTER, FlowLayout.LEADING, or FlowLayout.TRAILING.

Parameters
align the alignment value

public FlowLayout (int align, int hgap, int vgap)

Creates a new flow layout manager with the indicated alignment and the indicated horizontal and vertical gaps.

The value of the alignment argument must be one of FlowLayout.LEFT, FlowLayout.RIGHT, FlowLayout.CENTER, FlowLayout.LEADING, or FlowLayout.TRAILING.

Parameters
align the alignment value
hgap the horizontal gap between components and between the components and the borders of the Container
vgap the vertical gap between components and between the components and the borders of the Container

Public Methods

public void addLayoutComponent (String name, Component comp)

Adds the specified component to the layout. Not used by this class.

Parameters
name the name of the component
comp the component to be added

public boolean getAlignOnBaseline ()

Returns true if components are to be vertically aligned along their baseline. The default is false.

Returns
  • true if components are to be vertically aligned along their baseline

public int getAlignment ()

Gets the alignment for this layout. Possible values are FlowLayout.LEFT, FlowLayout.RIGHT, FlowLayout.CENTER, FlowLayout.LEADING, or FlowLayout.TRAILING.

Returns
  • the alignment value for this layout

public int getHgap ()

Gets the horizontal gap between components and between the components and the borders of the Container

Returns
  • the horizontal gap between components and between the components and the borders of the Container
See Also

public int getVgap ()

Gets the vertical gap between components and between the components and the borders of the Container.

Returns
  • the vertical gap between components and between the components and the borders of the Container
See Also

public void layoutContainer (Container target)

Lays out the container. This method lets each visible component take its preferred size by reshaping the components in the target container in order to satisfy the alignment of this FlowLayout object.

Parameters
target the specified component being laid out

public Dimension minimumLayoutSize (Container target)

Returns the minimum dimensions needed to layout the visible components contained in the specified target container.

Parameters
target the container that needs to be laid out
Returns
  • the minimum dimensions to lay out the subcomponents of the specified container

public Dimension preferredLayoutSize (Container target)

Returns the preferred dimensions for this layout given the visible components in the specified target container.

Parameters
target the container that needs to be laid out
Returns
  • the preferred dimensions to lay out the subcomponents of the specified container

public void removeLayoutComponent (Component comp)

Removes the specified component from the layout. Not used by this class.

Parameters
comp the component to remove
See Also

public void setAlignOnBaseline (boolean alignOnBaseline)

Sets whether or not components should be vertically aligned along their baseline. Components that do not have a baseline will be centered. The default is false.

Parameters
alignOnBaseline whether or not components should be vertically aligned on their baseline

public void setAlignment (int align)

Sets the alignment for this layout. Possible values are

  • FlowLayout.LEFT
  • FlowLayout.RIGHT
  • FlowLayout.CENTER
  • FlowLayout.LEADING
  • FlowLayout.TRAILING

Parameters
align one of the alignment values shown above
See Also

public void setHgap (int hgap)

Sets the horizontal gap between components and between the components and the borders of the Container.

Parameters
hgap the horizontal gap between components and between the components and the borders of the Container
See Also

public void setVgap (int vgap)

Sets the vertical gap between components and between the components and the borders of the Container.

Parameters
vgap the vertical gap between components and between the components and the borders of the Container
See Also

public String toString ()

Returns a string representation of this FlowLayout object and its values.

Returns
  • a string representation of this layout