- 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'scomponentOrientation
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.
- Since:
- 1.0
- See Also:
ComponentOrientation
, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static int
CENTER
This value indicates that each row of components should be centered.static 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.static int
LEFT
This value indicates that each row of components should be left-justified.static int
RIGHT
This value indicates that each row of components should be right-justified.static 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.
-
Constructor Summary
Constructors Constructor Description FlowLayout()
Constructs a newFlowLayout
with a centered alignment and a default 5-unit horizontal and vertical gap.FlowLayout(int align)
Constructs a newFlowLayout
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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addLayoutComponent(String name, Component comp)
Adds the specified component to the layout.int
getAlignment()
Gets the alignment for this layout.boolean
getAlignOnBaseline()
Returns true if components are to be vertically aligned along their baseline.int
getHgap()
Gets the horizontal gap between components and between the components and the borders of theContainer
int
getVgap()
Gets the vertical gap between components and between the components and the borders of theContainer
.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
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 theContainer
.void
setVgap(int vgap)
Sets the vertical gap between components and between the components and the borders of theContainer
.String
toString()
Returns a string representation of thisFlowLayout
object and its values.
-
-
-
Field Detail
LEFT
public static final int LEFT
This value indicates that each row of components should be left-justified.- See Also:
- Constant Field Values
CENTER
public static final int CENTER
This value indicates that each row of components should be centered.- See Also:
- Constant Field Values
RIGHT
public static final int RIGHT
This value indicates that each row of components should be right-justified.- See Also:
- Constant Field Values
LEADING
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.- Since:
- 1.2
- See Also:
Component.getComponentOrientation()
,ComponentOrientation
, Constant Field Values
TRAILING
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.- Since:
- 1.2
- See Also:
Component.getComponentOrientation()
,ComponentOrientation
, Constant Field Values
-
Constructor Detail
FlowLayout
public FlowLayout()
Constructs a newFlowLayout
with a centered alignment and a default 5-unit horizontal and vertical gap.
FlowLayout
public FlowLayout(int align)
Constructs a newFlowLayout
with the specified alignment and a default 5-unit horizontal and vertical gap. The value of the alignment argument must be one ofFlowLayout.LEFT
,FlowLayout.RIGHT
,FlowLayout.CENTER
,FlowLayout.LEADING
, orFlowLayout.TRAILING
.- Parameters:
align
- the alignment value
FlowLayout
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
, orFlowLayout.TRAILING
.- Parameters:
align
- the alignment valuehgap
- the horizontal gap between components and between the components and the borders of theContainer
vgap
- the vertical gap between components and between the components and the borders of theContainer
-
Method Detail
getAlignment
public int getAlignment()
Gets the alignment for this layout. Possible values areFlowLayout.LEFT
,FlowLayout.RIGHT
,FlowLayout.CENTER
,FlowLayout.LEADING
, orFlowLayout.TRAILING
.- Returns:
- the alignment value for this layout
- Since:
- 1.1
- See Also:
setAlignment(int)
setAlignment
public void setAlignment(int align)
Sets the alignment for this layout. Possible values areFlowLayout.LEFT
FlowLayout.RIGHT
FlowLayout.CENTER
FlowLayout.LEADING
FlowLayout.TRAILING
- Parameters:
align
- one of the alignment values shown above- Since:
- 1.1
- See Also:
getAlignment()
getHgap
public int getHgap()
Gets the horizontal gap between components and between the components and the borders of theContainer
- Returns:
-
the horizontal gap between components and between the components and the borders of the
Container
- Since:
- 1.1
- See Also:
setHgap(int)
setHgap
public void setHgap(int hgap)
Sets the horizontal gap between components and between the components and the borders of theContainer
.- Parameters:
hgap
- the horizontal gap between components and between the components and the borders of theContainer
- Since:
- 1.1
- See Also:
getHgap()
getVgap
public int getVgap()
Gets the vertical gap between components and between the components and the borders of theContainer
.- Returns:
-
the vertical gap between components and between the components and the borders of the
Container
- Since:
- 1.1
- See Also:
setVgap(int)
setVgap
public void setVgap(int vgap)
Sets the vertical gap between components and between the components and the borders of theContainer
.- Parameters:
vgap
- the vertical gap between components and between the components and the borders of theContainer
- Since:
- 1.1
- See Also:
getVgap()
setAlignOnBaseline
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
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
public void addLayoutComponent(String name, Component comp)
Adds the specified component to the layout. Not used by this class.- Specified by:
addLayoutComponent
in interfaceLayoutManager
- Parameters:
name
- the name of the componentcomp
- the component to be added
removeLayoutComponent
public void removeLayoutComponent(Component comp)
Removes the specified component from the layout. Not used by this class.- Specified by:
removeLayoutComponent
in interfaceLayoutManager
- Parameters:
comp
- the component to remove- See Also:
Container.removeAll()
preferredLayoutSize
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 interfaceLayoutManager
- 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:
Container
,minimumLayoutSize(java.awt.Container)
,Container.getPreferredSize()
minimumLayoutSize
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 interfaceLayoutManager
- 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:
preferredLayoutSize(java.awt.Container)
,Container
,Container.doLayout()
layoutContainer
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 thisFlowLayout
object.- Specified by:
layoutContainer
in interfaceLayoutManager
- Parameters:
target
- the specified component being laid out- See Also:
Container
,Container.doLayout()
-