|
||||||||||
| 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 container| Method 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 AbstractButtonPanelBuilderbutton - the component to add
NullPointerException - if button is nullpublic ButtonStackBuilder addButton(JComponent... buttons)
AbstractButtonPanelBuildernull. 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 AbstractButtonPanelBuilderbuttons - the buttons to add
AbstractButtonPanelBuilder.addButton(JComponent)public ButtonStackBuilder addButton(Action... actions)
AbstractButtonPanelBuilder
addButton in class AbstractButtonPanelBuilderactions - an array of buttons to addpublic ButtonStackBuilder addFixed(JComponent component)
component - the component to addpublic ButtonStackBuilder addGlue()
public ButtonStackBuilder addRelatedGap()
AbstractButtonPanelBuilder
addRelatedGap in class AbstractButtonPanelBuilderpublic ButtonStackBuilder addUnrelatedGap()
AbstractButtonPanelBuilder
addUnrelatedGap in class AbstractButtonPanelBuilderpublic ButtonStackBuilder addStrut(ConstantSize size)
size - a constant that describes the gappublic ButtonStackBuilder background(Color background)
AbstractButtonPanelBuilder
background in class AbstractButtonPanelBuilderbackground - the color to set as new backgroundJComponent.setBackground(Color)public ButtonStackBuilder border(Border border)
AbstractButtonPanelBuilder
border in class AbstractButtonPanelBuilderborder - the border to setJComponent.setBorder(Border)public ButtonStackBuilder opaque(boolean b)
AbstractButtonPanelBuilder
opaque in class AbstractButtonPanelBuilderb - 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 | |||||||||