|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.jgoodies.forms.builder.AbstractBuilder
com.jgoodies.forms.builder.AbstractButtonPanelBuilder
com.jgoodies.forms.builder.ButtonStackBuilder
public final class ButtonStackBuilder
A non-visual builder that assists you in building consistent button stacks
using the FormLayout
.
This builder sets a hint for narrow margin for the gridded buttons. This can reduce the button stack's width if some buttons have long texts. For example, a stack with 'OK', 'Cancel', 'Configure…' will likely exceed the minimum button width. The narrow margins help getting narrow stacks. Note that some look&feels do not support the narrow margin feature, and conversely, others have only narrow margins. The JGoodies look&feels honor the setting, the Mac Aqua l&f uses narrow margins all the time.
Example:
The following example builds a button stack with Close, Up and
Down, where Up and Down are related, and Close is not related
to the other buttons, which makes a wide gap for the unrelated and
a smaller gap for the related buttons.
private JPanel createCloseUpDownButtonStack( JButton close, JButton up, JButton down) { return new ButtonStackBuilder() .addGridded(close) .addUnrelatedGap() .addGridded(up) .addRelatedGap() .addGridded(down) .build(); }
ButtonBarBuilder
,
LayoutStyle
Field Summary |
---|
Fields inherited from class com.jgoodies.forms.builder.AbstractButtonPanelBuilder |
---|
focusGrouped |
Fields inherited from class com.jgoodies.forms.builder.AbstractBuilder |
---|
currentCellConstraints |
Constructor Summary | |
---|---|
ButtonStackBuilder()
Constructs a ButtonStackBuilder on a default JPanel using a pre-configured FormLayout as layout manager. |
|
ButtonStackBuilder(JPanel panel)
Constructs a ButtonStackBuilder on the given panel using a pre-configured FormLayout as layout manager. |
Method Summary | |
---|---|
ButtonStackBuilder |
addButton(Action... actions)
Constructs an array of JButtons from the given Action array, and adds them as a sequence of related buttons separated by a default gap. |
ButtonStackBuilder |
addButton(JComponent... buttons)
Adds one or many sequences of related buttons. |
ButtonStackBuilder |
addButton(JComponent button)
Adds a button component that has a minimum width specified by the LayoutStyle.getDefaultButtonWidth() . |
ButtonStackBuilder |
addFixed(JComponent component)
Adds a fixed size component. |
ButtonStackBuilder |
addGlue()
Adds a glue that will be given the extra space, if this box is larger than its preferred size. |
ButtonStackBuilder |
addRelatedGap()
Adds the standard gap for related components. |
ButtonStackBuilder |
addStrut(ConstantSize size)
Adds a strut of a specified size. |
ButtonStackBuilder |
addUnrelatedGap()
Adds the standard gap for unrelated components. |
ButtonStackBuilder |
background(Color background)
Sets the panel's background color and makes the panel opaque. |
ButtonStackBuilder |
border(Border border)
Sets the panel's border. |
ButtonStackBuilder |
opaque(boolean b)
Sets the panel's opaque state. |
Methods inherited from class com.jgoodies.forms.builder.AbstractButtonPanelBuilder |
---|
add, appendColumn, appendGlueColumn, appendGlueRow, appendRelatedComponentsGapColumn, appendRelatedComponentsGapRow, appendRow, appendUnrelatedComponentsGapColumn, appendUnrelatedComponentsGapRow, build, createButton, getColumn, getPanel, getRow, isLeftToRight, nextColumn, nextRow, setBackground, setBorder, setLeftToRight, setOpaque |
Methods inherited from class com.jgoodies.forms.builder.AbstractBuilder |
---|
createComponentFactory, getColumnCount, getComponentFactory, getComponentFactoryDefault, getContainer, getLayout, getRowCount, setComponentFactory, setComponentFactoryDefault |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public ButtonStackBuilder()
public ButtonStackBuilder(JPanel panel)
panel
- the layout containerMethod Detail |
---|
public ButtonStackBuilder addButton(JComponent button)
LayoutStyle.getDefaultButtonWidth()
.Although a JButton is expected, any JComponent is accepted to allow custom button component types.
addButton
in class AbstractButtonPanelBuilder
button
- the component to add
NullPointerException
- if button
is null
public ButtonStackBuilder addButton(JComponent... buttons)
AbstractButtonPanelBuilder
null
. The next sequence is separated by an
unrelated gap.
Each button has the minimum width as specified by
LayoutStyle.getDefaultButtonWidth()
. The gap width between
the buttons is LayoutStyle.getRelatedComponentsPadX()
.Although JButtons are expected, general JComponents are accepted to allow custom button component types.
Examples:
builder.addButtons(newButton, editButton, deleteButton); builder.addButtons(newButton, editButton, deleteButton, null, printButton);
addButton
in class AbstractButtonPanelBuilder
buttons
- the buttons to add
AbstractButtonPanelBuilder.addButton(JComponent)
public ButtonStackBuilder addButton(Action... actions)
AbstractButtonPanelBuilder
addButton
in class AbstractButtonPanelBuilder
actions
- an array of buttons to addpublic ButtonStackBuilder addFixed(JComponent component)
component
- the component to addpublic ButtonStackBuilder addGlue()
public ButtonStackBuilder addRelatedGap()
AbstractButtonPanelBuilder
addRelatedGap
in class AbstractButtonPanelBuilder
public ButtonStackBuilder addUnrelatedGap()
AbstractButtonPanelBuilder
addUnrelatedGap
in class AbstractButtonPanelBuilder
public ButtonStackBuilder addStrut(ConstantSize size)
size
- a constant that describes the gappublic ButtonStackBuilder background(Color background)
AbstractButtonPanelBuilder
background
in class AbstractButtonPanelBuilder
background
- the color to set as new backgroundJComponent.setBackground(Color)
public ButtonStackBuilder border(Border border)
AbstractButtonPanelBuilder
border
in class AbstractButtonPanelBuilder
border
- the border to setJComponent.setBorder(Border)
public ButtonStackBuilder opaque(boolean b)
AbstractButtonPanelBuilder
opaque
in class AbstractButtonPanelBuilder
b
- true for opaque, false for non-opaqueJComponent.setOpaque(boolean)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |