Package org.jdesktop.layout
Class LayoutStyle
- java.lang.Object
-
- org.jdesktop.layout.LayoutStyle
-
public class LayoutStyle extends java.lang.Object
LayoutStyle is used to determine how much space to place between components during layout. LayoutStyle can be obtained for two components, or for a component relative to an edge of a parent container. The amount of space can vary depending upon whether or not the components are logically grouped together (RELATED
).This class is primarily useful for JREs prior to 1.6. In 1.6 API for this was added to Swing. When run on a JRE of 1.6 or greater this will call into the appropriate methods in Swing.
-
-
Constructor Summary
Constructors Constructor Description LayoutStyle()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description int
getContainerGap(javax.swing.JComponent component, int position, java.awt.Container parent)
Returns the amount of space to position a component inside its parent.int
getPreferredGap(javax.swing.JComponent component1, javax.swing.JComponent component2, int type, int position, java.awt.Container parent)
Returns the amount of space to use between two components.static LayoutStyle
getSharedInstance()
Factory methods for obtaining the currentLayoutStyle
object appropriate for the current look and feel.static void
setSharedInstance(LayoutStyle layoutStyle)
Sets the LayoutStyle instance to use for this look and feel.
-
-
-
Field Detail
-
RELATED
public static final int RELATED
Possible argument to getPreferredGap. Used to indicate the two componets are grouped together.- See Also:
- Constant Field Values
-
UNRELATED
public static final int UNRELATED
Possible argument to getPreferredGap. Used to indicate the two componets are not grouped together.- See Also:
- Constant Field Values
-
INDENT
public static final int INDENT
Possible argument to getPreferredGap. Used to indicate the distance to indent a component is being requested. To visually indicate a set of related components they will often times be horizontally indented, theINDENT
constant for this. For example, to indent a check box relative to a label use this constant togetPreferredGap
.- See Also:
- Constant Field Values
-
-
Method Detail
-
setSharedInstance
public static void setSharedInstance(LayoutStyle layoutStyle)
Sets the LayoutStyle instance to use for this look and feel. You generally don't need to invoke this, instead use the getter which will return the LayoutStyle appropriate for the current look and feel.- Parameters:
layoutStyle
- the LayoutStyle to use; a value of null indicates the default should be used
-
getSharedInstance
public static LayoutStyle getSharedInstance()
Factory methods for obtaining the currentLayoutStyle
object appropriate for the current look and feel.- Returns:
- the current LayoutStyle instance
-
getPreferredGap
public int getPreferredGap(javax.swing.JComponent component1, javax.swing.JComponent component2, int type, int position, java.awt.Container parent)
Returns the amount of space to use between two components. The return value indicates the distance to placecomponent2
relative tocomponent1
. For example, the following returns the amount of space to place betweencomponent2
andcomponent1
whencomponent2
is placed vertically abovecomponent1
:int gap = getPreferredGap(component1, component2, LayoutStyle.RELATED, SwingConstants.NORTH, parent);
Thetype
parameter indicates the type of gap being requested. It can be one of the following values:RELATED
If the two components will be contained in the same parent and are showing similar logically related items, use RELATED
.UNRELATED
If the two components will be contained in the same parent but show logically unrelated items use UNRELATED
.INDENT
Used to obtain the preferred distance to indent a component relative to another. For example, if you want to horizontally indent a JCheckBox relative to a JLabel use INDENT
. This is only useful for the horizontal axis.It's important to note that some look and feels may not distinguish between
RELATED
andUNRELATED
.The return value is not intended to take into account the current size and position of
component2
orcomponent1
. The return value may take into consideration various properties of the components. For example, the space may vary based on font size, or the preferred size of the component.- Parameters:
component1
- theJComponent
component2
is being placed relative tocomponent2
- theJComponent
being placedtype
- how the two components are being placedposition
- the positioncomponent2
is being placed relative tocomponent1
; one ofSwingConstants.NORTH
,SwingConstants.SOUTH
,SwingConstants.EAST
orSwingConstants.WEST
parent
- the parent ofcomponent2
; this may differ from the actual parent and may be null- Returns:
- the amount of space to place between the two components
- Throws:
java.lang.IllegalArgumentException
- ifposition
is not one ofSwingConstants.NORTH
,SwingConstants.SOUTH
,SwingConstants.EAST
orSwingConstants.WEST
;type
not one ofINDENT
,RELATED
orUNRELATED
; orcomponent1
orcomponent2
is null
-
getContainerGap
public int getContainerGap(javax.swing.JComponent component, int position, java.awt.Container parent)
Returns the amount of space to position a component inside its parent.- Parameters:
component
- theComponent
being positionedposition
- the positioncomponent
is being placed relative to its parent; one ofSwingConstants.NORTH
,SwingConstants.SOUTH
,SwingConstants.EAST
orSwingConstants.WEST
parent
- the parent ofcomponent
; this may differ from the actual parent and may be null- Returns:
- the amount of space to place between the component and specified edge
- Throws:
java.lang.IllegalArgumentException
- ifposition
is not one ofSwingConstants.NORTH
,SwingConstants.SOUTH
,SwingConstants.EAST
orSwingConstants.WEST
; orcomponent
is null
-
-