Package uk.ac.starlink.util.gui
Class GridBagLayouter
java.lang.Object
uk.ac.starlink.util.gui.GridBagLayouter
Utility class for laying out UI components using a GridBagLayout
with fixed schemes of various kinds..
See the various schemes (SCHEME[1-]) for what layouts are
supported.
A typical usage pattern is:
GridBagLayouter layouter = new GridBagLayouter( pane, GridBagLayouter.SCHEME3 ); layouter.add( "Label:", false ); layouter.add( new JComponent(), true ); // End of this line ... more components ... layouter.eatSpare(); // End of all components
- Version:
- $Id$
- Author:
- Peter W. Draper
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
Simple row by row layout.static final int
Simple row by row layout, but this time with three components, weighted 0.15 to 0 to 0.85, so that most space is kept by right component.static final int
Simple row by row layout.static final int
Simple row by row layout, as in SCHEME3, but with the occasional component that fills vertically too.static final int
Simple row by row layout. -
Constructor Summary
ConstructorsConstructorDescriptionGridBagLayouter
(Container container) Create an instance with the default layout scheme (SCHEME1).GridBagLayouter
(Container container, int scheme) Create an instance with a given layout scheme. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Add a control using the current scheme.void
add
(Component component, GridBagConstraints gbc) Add a control using given GridBagContraints.void
Add a JLabel using the current scheme.void
Add a JLabel using the current scheme.void
eatLine()
Eat to end of current line.void
eatSpare()
Finish adding by "eating" all remaining space (makes components move to top of container).Get the container we're adding to.void
Set the GridBagLayout Insets.
-
Field Details
-
SCHEME1
public static final int SCHEME1Simple row by row layout. Everything packed to the left, labels right justified, no fills. Typical usage:label: [input component] label: [input component] ....
- See Also:
-
SCHEME2
public static final int SCHEME2Simple row by row layout, but this time with three components, weighted 0.15 to 0 to 0.85, so that most space is kept by right component. Typical usage:[minor input component] label [main input component] [minor input component] label [main input component] ....
- See Also:
-
SCHEME3
public static final int SCHEME3Simple row by row layout. Everything packed to the left, labels right justified, last component uses all remaining space. Typical usage:label: [long text input component ] label: [long text input component ] ....
- See Also:
-
SCHEME4
public static final int SCHEME4Simple row by row layout, as in SCHEME3, but with the occasional component that fills vertically too. Typical usage:label: [long text input component ] label: [long text input component ] [text/display area ] [.... ] [.... ] ....
a filled area is indicated by a single item on a line.- See Also:
-
SCHEME5
public static final int SCHEME5Simple row by row layout. Everything packed to the left, labels left justified, no fills. Typical usage:label [input component] [input component] label [input component] [input component] ....
- See Also:
-
-
Constructor Details
-
GridBagLayouter
Create an instance with the default layout scheme (SCHEME1). Note that container gains a GridBagLayout.- Parameters:
container
- the container
-
GridBagLayouter
Create an instance with a given layout scheme. Note that container gains a GridBagLayout.- Parameters:
container
- the containerscheme
- one of the available schemes (SCHEME[1-]).
-
-
Method Details
-
add
Add a JLabel using the current scheme.- Parameters:
label
- the string for the JLabelcomplete
- whether the line is now completed
-
add
Add a JLabel using the current scheme. Assumes complete is false.- Parameters:
label
- the string for the JLabel
-
add
Add a control using the current scheme.- Parameters:
component
- the component to addcomplete
- whether the line is now completed
-
setInsets
Set the GridBagLayout Insets. Overrides the default. -
add
Add a control using given GridBagContraints. This does not use any of the builtin schemes. -
eatLine
public void eatLine()Eat to end of current line. -
eatSpare
public void eatSpare()Finish adding by "eating" all remaining space (makes components move to top of container). -
getContainer
Get the container we're adding to.
-