Class FlowLayout
java.lang.Object
java.awt.FlowLayout
- All Implemented Interfaces:
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_RIGHTComponentOrientation.RIGHT_TO_LEFT
align
property. The possible values are:
For example, the following picture shows a window using the flow layout manager (its default layout manager) to position three buttons:
Here is the code for this program:
import java.awt.Button;
import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.awt.Frame;
public class FlowLayoutExample {
public static void main(String[] args) throws Exception {
EventQueue.invokeAndWait(() -> {
Frame frame = new Frame("FlowLayout");
frame.setLayout(new FlowLayout());
frame.add(new Button("OK"));
frame.add(new Button("Open"));
frame.add(new Button("Close"));
frame.pack();
frame.setVisible(true);
});
}
}
A flow layout lets each component assume its natural (preferred) size.
- Since:
- 1.0
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intThis value indicates that each row of components should be centered.static final intThis 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 intThis value indicates that each row of components should be left-justified.static final intThis value indicates that each row of components should be right-justified.static final intThis 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
ConstructorsConstructorDescriptionConstructs a newFlowLayoutwith a centered alignment and a default 5-unit horizontal and vertical gap.FlowLayout(int align) Constructs a newFlowLayoutwith 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
Modifier and TypeMethodDescriptionvoidaddLayoutComponent(String name, Component comp) Adds the specified component to the layout.intGets the alignment for this layout.booleanReturns true if components are to be vertically aligned along their baseline.intgetHgap()Gets the horizontal gap between components and between the components and the borders of theContainerintgetVgap()Gets the vertical gap between components and between the components and the borders of theContainer.voidlayoutContainer(Container target) Lays out the container.minimumLayoutSize(Container target) Returns the minimum dimensions needed to layout the visible components contained in the specified target container.preferredLayoutSize(Container target) Returns the preferred dimensions for this layout given the visible components in the specified target container.voidRemoves the specified component from the layout.voidsetAlignment(int align) Sets the alignment for this layout.voidsetAlignOnBaseline(boolean alignOnBaseline) Sets whether or not components should be vertically aligned along their baseline.voidsetHgap(int hgap) Sets the horizontal gap between components and between the components and the borders of theContainer.voidsetVgap(int vgap) Sets the vertical gap between components and between the components and the borders of theContainer.toString()Returns a string representation of thisFlowLayoutobject and its values.Methods declared in class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitModifier and TypeMethodDescriptionprotected Objectclone()Answers a new instance of the same class as the receiver, whose slots have been filled in with the values in the slots of the receiver.booleanCompares the argument to the receiver, and answers true if they represent the same object using a class specific comparison.protected voidfinalize()Deprecated, for removal: This API element is subject to removal in a future version.May cause performance issues, deadlocks and hangs.getClass()Answers the unique instance of java.lang.Class which represents the class of the receiver.inthashCode()Answers an integer hash code for the receiver.final voidnotify()Causes one thread which iswaiting on the receiver to be made ready to run.final voidCauses all threads which arewaiting on the receiver to be made ready to run.final voidwait()Causes the thread which sent this message to be made not ready to run pending some change in the receiver (as indicated bynotifyornotifyAll).final voidwait(long time) Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated bynotifyornotifyAll) or the expiration of the timeout.final voidwait(long time, int frac) Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated bynotifyornotifyAll) or the expiration of the timeout.
-
Field Details
-
LEFT
public static final int LEFTThis value indicates that each row of components should be left-justified.- See Also:
-
CENTER
public static final int CENTERThis value indicates that each row of components should be centered.- See Also:
-
RIGHT
public static final int RIGHTThis value indicates that each row of components should be right-justified.- See Also:
-
LEADING
public static final int LEADINGThis 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:
-
TRAILING
public static final int TRAILINGThis 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:
-
-
Constructor Details
-
FlowLayout
public FlowLayout()Constructs a newFlowLayoutwith a centered alignment and a default 5-unit horizontal and vertical gap. -
FlowLayout
public FlowLayout(int align) Constructs a newFlowLayoutwith 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 theContainervgap- the vertical gap between components and between the components and the borders of theContainer
-
-
Method Details
-
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
public void setAlignment(int align) Sets the alignment for this layout. Possible values areFlowLayout.LEFTFlowLayout.RIGHTFlowLayout.CENTERFlowLayout.LEADINGFlowLayout.TRAILING
- Parameters:
align- one of the alignment values shown above- Since:
- 1.1
- See Also:
-
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
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:
-
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
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:
-
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
Adds the specified component to the layout. Not used by this class.- Specified by:
addLayoutComponentin interfaceLayoutManager- Parameters:
name- the name of the componentcomp- the component to be added
-
removeLayoutComponent
Removes the specified component from the layout. Not used by this class.- Specified by:
removeLayoutComponentin interfaceLayoutManager- Parameters:
comp- the component to remove- See Also:
-
preferredLayoutSize
Returns the preferred dimensions for this layout given the visible components in the specified target container.- Specified by:
preferredLayoutSizein 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:
-
minimumLayoutSize
Returns the minimum dimensions needed to layout the visible components contained in the specified target container.- Specified by:
minimumLayoutSizein 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:
-
layoutContainer
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 thisFlowLayoutobject.- Specified by:
layoutContainerin interfaceLayoutManager- Parameters:
target- the specified component being laid out- See Also:
-
toString
-