< prev index next >
src/java.desktop/share/classes/javax/swing/LayoutStyle.java
Print this page
*** 27,53 ****
import java.awt.Container;
import javax.swing.plaf.ComponentUI;
import sun.awt.AppContext;
/**
! * <code>LayoutStyle</code> provides information about how to position
* components. This class is primarily useful for visual tools and
* layout managers. Most developers will not need to use this class.
* <p>
* You typically don't set or create a
! * <code>LayoutStyle</code>. Instead use the static method
! * <code>getInstance</code> to obtain the current instance.
*
* @since 1.6
*/
public abstract class LayoutStyle {
/**
! * Sets the shared instance of <code>LayoutStyle</code>. Specifying
! * <code>null</code> results in using the <code>LayoutStyle</code> from
! * the current <code>LookAndFeel</code>.
*
! * @param style the <code>LayoutStyle</code>, or <code>null</code>
* @see #getInstance
*/
public static void setInstance(LayoutStyle style) {
synchronized(LayoutStyle.class) {
if (style == null) {
--- 27,53 ----
import java.awt.Container;
import javax.swing.plaf.ComponentUI;
import sun.awt.AppContext;
/**
! * {@code LayoutStyle} provides information about how to position
* components. This class is primarily useful for visual tools and
* layout managers. Most developers will not need to use this class.
* <p>
* You typically don't set or create a
! * {@code LayoutStyle}. Instead use the static method
! * {@code getInstance} to obtain the current instance.
*
* @since 1.6
*/
public abstract class LayoutStyle {
/**
! * Sets the shared instance of {@code LayoutStyle}. Specifying
! * {@code null} results in using the {@code LayoutStyle} from
! * the current {@code LookAndFeel}.
*
! * @param style the {@code LayoutStyle}, or {@code null}
* @see #getInstance
*/
public static void setInstance(LayoutStyle style) {
synchronized(LayoutStyle.class) {
if (style == null) {
*** 58,73 ****
}
}
}
/**
! * Returns the shared instance of <code>LayoutStyle</code>. If an instance
! * has not been specified in <code>setInstance</code>, this will return
! * the <code>LayoutStyle</code> from the current <code>LookAndFeel</code>.
*
* @see LookAndFeel#getLayoutStyle
! * @return the shared instance of <code>LayoutStyle</code>
*/
public static LayoutStyle getInstance() {
LayoutStyle style;
synchronized(LayoutStyle.class) {
style = (LayoutStyle)AppContext.getAppContext().
--- 58,73 ----
}
}
}
/**
! * Returns the shared instance of {@code LayoutStyle}. If an instance
! * has not been specified in {@code setInstance}, this will return
! * the {@code LayoutStyle} from the current {@code LookAndFeel}.
*
* @see LookAndFeel#getLayoutStyle
! * @return the shared instance of {@code LayoutStyle}
*/
public static LayoutStyle getInstance() {
LayoutStyle style;
synchronized(LayoutStyle.class) {
style = (LayoutStyle)AppContext.getAppContext().
*** 79,190 ****
return style;
}
/**
! * <code>ComponentPlacement</code> is an enumeration of the
* possible ways two components can be placed relative to each
! * other. <code>ComponentPlacement</code> is used by the
! * <code>LayoutStyle</code> method <code>getPreferredGap</code>. Refer to
! * <code>LayoutStyle</code> for more information.
*
* @see LayoutStyle#getPreferredGap(JComponent,JComponent,
* ComponentPlacement,int,Container)
* @since 1.6
*/
public enum ComponentPlacement {
/**
* Enumeration value indicating the two components are
* visually related and will be placed in the same parent.
! * For example, a <code>JLabel</code> providing a label for a
! * <code>JTextField</code> is typically visually associated
! * with the <code>JTextField</code>; the constant <code>RELATED</code>
* is used for this.
*/
RELATED,
/**
* Enumeration value indicating the two components are
* visually unrelated and will be placed in the same parent.
* For example, groupings of components are usually visually
! * separated; the constant <code>UNRELATED</code> is used for this.
*/
UNRELATED,
/**
* Enumeration value indicating the distance to indent a component
* is being requested. For example, often times the children of
* a label will be horizontally indented from the label. To determine
* the preferred distance for such a gap use the
! * <code>INDENT</code> type.
* <p>
* This value is typically only useful with a direction of
! * <code>EAST</code> or <code>WEST</code>.
*/
INDENT;
}
/**
! * Creates a new <code>LayoutStyle</code>. You generally don't
! * create a <code>LayoutStyle</code>. Instead use the method
! * <code>getInstance</code> to obtain the current
! * <code>LayoutStyle</code>.
*/
public LayoutStyle() {
}
/**
* Returns the amount of space to use between two components.
* The return value indicates the distance to place
! * <code>component2</code> relative to <code>component1</code>.
* For example, the following returns the amount of space to place
! * between <code>component2</code> and <code>component1</code>
! * when <code>component2</code> is placed vertically above
! * <code>component1</code>:
* <pre>
* int gap = getPreferredGap(component1, component2,
* ComponentPlacement.RELATED,
* SwingConstants.NORTH, parent);
* </pre>
! * The <code>type</code> parameter indicates the relation between
* the two components. If the two components will be contained in
* the same parent and are showing similar logically related
! * items, use <code>RELATED</code>. If the two components will be
* contained in the same parent but show logically unrelated items
! * use <code>UNRELATED</code>. Some look and feels may not
! * distinguish between the <code>RELATED</code> and
! * <code>UNRELATED</code> types.
* <p>
* The return value is not intended to take into account the
! * current size and position of <code>component2</code> or
! * <code>component1</code>. 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.
*
! * @param component1 the <code>JComponent</code>
! * <code>component2</code> is being placed relative to
! * @param component2 the <code>JComponent</code> being placed
! * @param position the position <code>component2</code> is being placed
! * relative to <code>component1</code>; one of
! * <code>SwingConstants.NORTH</code>,
! * <code>SwingConstants.SOUTH</code>,
! * <code>SwingConstants.EAST</code> or
! * <code>SwingConstants.WEST</code>
* @param type how the two components are being placed
! * @param parent the parent of <code>component2</code>; this may differ
! * from the actual parent and it may be <code>null</code>
* @return the amount of space to place between the two components
! * @throws NullPointerException if <code>component1</code>,
! * <code>component2</code> or <code>type</code> is
! * <code>null</code>
! * @throws IllegalArgumentException if <code>position</code> is not
! * one of <code>SwingConstants.NORTH</code>,
! * <code>SwingConstants.SOUTH</code>,
! * <code>SwingConstants.EAST</code> or
! * <code>SwingConstants.WEST</code>
* @see LookAndFeel#getLayoutStyle
* @since 1.6
*/
public abstract int getPreferredGap(JComponent component1,
JComponent component2,
--- 79,190 ----
return style;
}
/**
! * {@code ComponentPlacement} is an enumeration of the
* possible ways two components can be placed relative to each
! * other. {@code ComponentPlacement} is used by the
! * {@code LayoutStyle} method {@code getPreferredGap}. Refer to
! * {@code LayoutStyle} for more information.
*
* @see LayoutStyle#getPreferredGap(JComponent,JComponent,
* ComponentPlacement,int,Container)
* @since 1.6
*/
public enum ComponentPlacement {
/**
* Enumeration value indicating the two components are
* visually related and will be placed in the same parent.
! * For example, a {@code JLabel} providing a label for a
! * {@code JTextField} is typically visually associated
! * with the {@code JTextField}; the constant {@code RELATED}
* is used for this.
*/
RELATED,
/**
* Enumeration value indicating the two components are
* visually unrelated and will be placed in the same parent.
* For example, groupings of components are usually visually
! * separated; the constant {@code UNRELATED} is used for this.
*/
UNRELATED,
/**
* Enumeration value indicating the distance to indent a component
* is being requested. For example, often times the children of
* a label will be horizontally indented from the label. To determine
* the preferred distance for such a gap use the
! * {@code INDENT} type.
* <p>
* This value is typically only useful with a direction of
! * {@code EAST} or {@code WEST}.
*/
INDENT;
}
/**
! * Creates a new {@code LayoutStyle}. You generally don't
! * create a {@code LayoutStyle}. Instead use the method
! * {@code getInstance} to obtain the current
! * {@code LayoutStyle}.
*/
public LayoutStyle() {
}
/**
* Returns the amount of space to use between two components.
* The return value indicates the distance to place
! * {@code component2} relative to {@code component1}.
* For example, the following returns the amount of space to place
! * between {@code component2} and {@code component1}
! * when {@code component2} is placed vertically above
! * {@code component1}:
* <pre>
* int gap = getPreferredGap(component1, component2,
* ComponentPlacement.RELATED,
* SwingConstants.NORTH, parent);
* </pre>
! * The {@code type} parameter indicates the relation between
* the two components. If the two components will be contained in
* the same parent and are showing similar logically related
! * items, use {@code RELATED}. If the two components will be
* contained in the same parent but show logically unrelated items
! * use {@code UNRELATED}. Some look and feels may not
! * distinguish between the {@code RELATED} and
! * {@code UNRELATED} types.
* <p>
* The return value is not intended to take into account the
! * current size and position of {@code component2} or
! * {@code component1}. 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.
*
! * @param component1 the {@code JComponent}
! * {@code component2} is being placed relative to
! * @param component2 the {@code JComponent} being placed
! * @param position the position {@code component2} is being placed
! * relative to {@code component1}; one of
! * {@code SwingConstants.NORTH},
! * {@code SwingConstants.SOUTH},
! * {@code SwingConstants.EAST} or
! * {@code SwingConstants.WEST}
* @param type how the two components are being placed
! * @param parent the parent of {@code component2}; this may differ
! * from the actual parent and it may be {@code null}
* @return the amount of space to place between the two components
! * @throws NullPointerException if {@code component1},
! * {@code component2} or {@code type} is
! * {@code null}
! * @throws IllegalArgumentException if {@code position} is not
! * one of {@code SwingConstants.NORTH},
! * {@code SwingConstants.SOUTH},
! * {@code SwingConstants.EAST} or
! * {@code SwingConstants.WEST}
* @see LookAndFeel#getLayoutStyle
* @since 1.6
*/
public abstract int getPreferredGap(JComponent component1,
JComponent component2,
*** 193,217 ****
/**
* Returns the amount of space to place between the component and specified
* edge of its parent.
*
! * @param component the <code>JComponent</code> being positioned
! * @param position the position <code>component</code> is being placed
* relative to its parent; one of
! * <code>SwingConstants.NORTH</code>,
! * <code>SwingConstants.SOUTH</code>,
! * <code>SwingConstants.EAST</code> or
! * <code>SwingConstants.WEST</code>
! * @param parent the parent of <code>component</code>; this may differ
! * from the actual parent and may be <code>null</code>
* @return the amount of space to place between the component and specified
* edge
! * @throws IllegalArgumentException if <code>position</code> is not
! * one of <code>SwingConstants.NORTH</code>,
! * <code>SwingConstants.SOUTH</code>,
! * <code>SwingConstants.EAST</code> or
! * <code>SwingConstants.WEST</code>
*/
public abstract int getContainerGap(JComponent component, int position,
Container parent);
}
--- 193,217 ----
/**
* Returns the amount of space to place between the component and specified
* edge of its parent.
*
! * @param component the {@code JComponent} being positioned
! * @param position the position {@code component} is being placed
* relative to its parent; one of
! * {@code SwingConstants.NORTH},
! * {@code SwingConstants.SOUTH},
! * {@code SwingConstants.EAST} or
! * {@code SwingConstants.WEST}
! * @param parent the parent of {@code component}; this may differ
! * from the actual parent and may be {@code null}
* @return the amount of space to place between the component and specified
* edge
! * @throws IllegalArgumentException if {@code position} is not
! * one of {@code SwingConstants.NORTH},
! * {@code SwingConstants.SOUTH},
! * {@code SwingConstants.EAST} or
! * {@code SwingConstants.WEST}
*/
public abstract int getContainerGap(JComponent component, int position,
Container parent);
}
< prev index next >