Module java.desktop
Package java.awt

Class FlowLayout

java.lang.Object
java.awt.FlowLayout
All Implemented Interfaces:
LayoutManager, Serializable

public class FlowLayout extends Object implements LayoutManager, Serializable
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.

Since:
1.0
See Also:
  • Field Summary Link icon

    Fields
    Modifier and Type
    Field
    Description
    static final int
    This value indicates that each row of components should be centered.
    static final int
    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.
    static final int
    This value indicates that each row of components should be left-justified.
    static final int
    This value indicates that each row of components should be right-justified.
    static final int
    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.
  • Constructor Summary Link icon

    Constructors
    Constructor
    Description
    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.
  • Method Summary Link icon

    Modifier and Type
    Method
    Description
    void
    Adds the specified component to the layout.
    int
    Gets the alignment for this layout.
    boolean
    Returns true if components are to be vertically aligned along their baseline.
    int
    Gets the horizontal gap between components and between the components and the borders of the Container
    int
    Gets the vertical gap between components and between the components and the borders of the Container.
    void
    Lays out the container.
    Returns the minimum dimensions needed to layout the visible components contained in the specified target container.
    Returns the preferred dimensions for this layout given the visible components in the specified target container.
    void
    Removes the specified component from the layout.
    void
    setAlignment(int align)
    Sets the alignment for this layout.
    void
    setAlignOnBaseline(boolean alignOnBaseline)
    Sets whether or not components should be vertically aligned along their baseline.
    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.
    Returns a string representation of this FlowLayout object and its values.

    Methods declared in class java.lang.Object Link icon

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details Link icon

  • Constructor Details Link icon

    • FlowLayout Link icon

      public FlowLayout()
      Constructs a new FlowLayout with a centered alignment and a default 5-unit horizontal and vertical gap.
    • FlowLayout Link icon

      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
    • FlowLayout Link icon

      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
  • Method Details Link icon

    • getAlignment Link icon

      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
      Since:
      1.1
      See Also:
    • setAlignment Link icon

      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
      Since:
      1.1
      See Also:
    • getHgap Link icon

      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
      Since:
      1.1
      See Also:
    • setHgap Link icon

      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
      Since:
      1.1
      See Also:
    • getVgap Link icon

      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
      Since:
      1.1
      See Also:
    • setVgap Link icon

      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
      Since:
      1.1
      See Also:
    • setAlignOnBaseline Link icon

      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
      Since:
      1.6
    • getAlignOnBaseline Link icon

      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
      Since:
      1.6
    • addLayoutComponent Link icon

      public void addLayoutComponent(String name, Component comp)
      Adds the specified component to the layout. Not used by this class.
      Specified by:
      addLayoutComponent in interface LayoutManager
      Parameters:
      name - the name of the component
      comp - the component to be added
    • removeLayoutComponent Link icon

      public void removeLayoutComponent(Component comp)
      Removes the specified component from the layout. Not used by this class.
      Specified by:
      removeLayoutComponent in interface LayoutManager
      Parameters:
      comp - the component to remove
      See Also:
    • preferredLayoutSize Link icon

      public Dimension preferredLayoutSize(Container target)
      Returns the preferred dimensions for this layout given the visible components in the specified target container.
      Specified by:
      preferredLayoutSize in interface LayoutManager
      Parameters:
      target - the container that needs to be laid out
      Returns:
      the preferred dimensions to lay out the subcomponents of the specified container
      See Also:
    • minimumLayoutSize Link icon

      public Dimension minimumLayoutSize(Container target)
      Returns the minimum dimensions needed to layout the visible components contained in the specified target container.
      Specified by:
      minimumLayoutSize in interface LayoutManager
      Parameters:
      target - the container that needs to be laid out
      Returns:
      the minimum dimensions to lay out the subcomponents of the specified container
      See Also:
    • layoutContainer Link icon

      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.
      Specified by:
      layoutContainer in interface LayoutManager
      Parameters:
      target - the specified component being laid out
      See Also:
    • toString Link icon

      public String toString()
      Returns a string representation of this FlowLayout object and its values.
      Overrides:
      toString in class Object
      Returns:
      a string representation of this layout