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
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:
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.
ComponentOrientation
, Serialized Formpublic static final int LEFT
This value indicates that each row of components should be left-justified.
public static final int CENTER
This value indicates that each row of components should be centered.
public static final int RIGHT
This value indicates that each row of components should be right-justified.
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.
Component.getComponentOrientation()
, ComponentOrientation
, Constant Field Valuespublic 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.
Component.getComponentOrientation()
, ComponentOrientation
, Constant Field Valuespublic 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
.
align
- the alignment valuepublic 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
.
align
- the alignment valuehgap
- 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 int getAlignment()
Gets the alignment for this layout. Possible values are FlowLayout.LEFT
, FlowLayout.RIGHT
, FlowLayout.CENTER
, FlowLayout.LEADING
, or FlowLayout.TRAILING
.
setAlignment(int)
public void setAlignment(int align)
Sets the alignment for this layout. Possible values are
FlowLayout.LEFT
FlowLayout.RIGHT
FlowLayout.CENTER
FlowLayout.LEADING
FlowLayout.TRAILING
align
- one of the alignment values shown abovegetAlignment()
public int getHgap()
Gets the horizontal gap between components and between the components and the borders of the Container
Container
setHgap(int)
public void setHgap(int hgap)
Sets the horizontal gap between components and between the components and the borders of the Container
.
hgap
- the horizontal gap between components and between the components and the borders of the Container
getHgap()
public int getVgap()
Gets the vertical gap between components and between the components and the borders of the Container
.
Container
setVgap(int)
public void setVgap(int vgap)
Sets the vertical 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
getVgap()
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.
alignOnBaseline
- whether or not components should be vertically aligned on their baselinepublic boolean getAlignOnBaseline()
Returns true if components are to be vertically aligned along their baseline. The default is false.
public void addLayoutComponent(String name, Component comp)
Adds the specified component to the layout. Not used by this class.
addLayoutComponent
in interface LayoutManager
name
- the name of the componentcomp
- the component to be addedpublic void removeLayoutComponent(Component comp)
Removes the specified component from the layout. Not used by this class.
removeLayoutComponent
in interface LayoutManager
comp
- the component to removeContainer.removeAll()
public Dimension preferredLayoutSize(Container target)
Returns the preferred dimensions for this layout given the visible components in the specified target container.
preferredLayoutSize
in interface LayoutManager
target
- the container that needs to be laid outContainer
, minimumLayoutSize(java.awt.Container)
, Container.getPreferredSize()
public Dimension minimumLayoutSize(Container target)
Returns the minimum dimensions needed to layout the visible components contained in the specified target container.
minimumLayoutSize
in interface LayoutManager
target
- the container that needs to be laid outpreferredLayoutSize(java.awt.Container)
, Container
, Container.doLayout()
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.
layoutContainer
in interface LayoutManager
target
- the specified component being laid outContainer
, Container.doLayout()
public String toString()
Returns a string representation of this FlowLayout
object and its values.
© 1993–2017, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.