Class ButtonBarBuilder
FormLayout
.
This class is in turn used by the
ButtonBarFactory
that provides
an even higher level of abstraction for building consistent button bars.
Buttons added to the builder are either gridded or fixed and may fill
their FormLayout cell or not. All gridded buttons get the same width,
while fixed buttons use their own size. Gridded buttons honor
the default minimum button width as specified by the current
LayoutStyle
.
You can set an optional hint for narrow margin for the fixed width buttons. This is useful if you want to lay out a button bar that includes a button with a long text. For example, in a bar with 'Copy to Clipboard', 'OK', 'Cancel' you may declare the clipboard button as a fixed size button with narrow margins, OK and Cancel as gridded. Gridded buttons are marked as narrow by default. 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.
To honor the platform's button order (left-to-right vs. right-to-left)
this builder uses the leftToRightButtonOrder property.
It is initialized with the current LayoutStyle's button order,
which in turn is left-to-right on most platforms and right-to-left
on the Mac OS X. Builder methods that create sequences of buttons
(e.g. addGriddedButtons(JButton[])
honor the button order.
If you want to ignore the default button order, you can either
add individual buttons, or create a ButtonBarBuilder instance
with the order set to left-to-right. For the latter see
createLeftToRightBuilder()
. Also see the button order
example below.
Example:
The following example builds a button bar with Help button on the
left-hand side and OK, Cancel, Apply buttons on the right-hand side.
private JPanel createHelpOKCancelApplyBar( JButton help, JButton ok, JButton cancel, JButton apply) { ButtonBarBuilder builder = new ButtonBarBuilder(); builder.addGridded(help); builder.addUnrelatedGap(); builder.addGlue(); builder.addGriddedButtons(new JButton[]{ok, cancel, apply}); return builder.getPanel(); }
Button Order Example:
The following example builds three button bars where one honors
the platform's button order and the other two ignore it.
public JComponent buildPanel() { FormLayout layout = new FormLayout("pref"); DefaultFormBuilder rowBuilder = new DefaultFormBuilder(layout); rowBuilder.setDefaultDialogBorder(); rowBuilder.append(buildButtonSequence(new ButtonBarBuilder())); rowBuilder.append(buildButtonSequence(ButtonBarBuilder.createLeftToRightBuilder())); rowBuilder.append(buildIndividualButtons(new ButtonBarBuilder())); return rowBuilder.getPanel(); } private Component buildButtonSequence(ButtonBarBuilder builder) { builder.addGriddedButtons(new JButton[] { new JButton("One"), new JButton("Two"), new JButton("Three") }); return builder.getPanel(); } private Component buildIndividualButtons(ButtonBarBuilder builder) { builder.addGridded(new JButton("One")); builder.addRelatedGap(); builder.addGridded(new JButton("Two")); builder.addRelatedGap(); builder.addGridded(new JButton("Three")); return builder.getPanel(); }
- Version:
- $Revision: 1.15 $
- Author:
- Karsten Lentzsch
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionDeprecated.Constructs an instance ofButtonBarBuilder
on aJPanel
using a preconfigured FormLayout as layout manager.ButtonBarBuilder
(JPanel panel) Deprecated.Constructs an instance ofButtonBarBuilder
on the given panel using a preconfigured FormLayout as layout manager. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addFixed
(JComponent component) Deprecated.Adds a fixed size component.void
addFixedNarrow
(JComponent component) Deprecated.Adds a fixed size component with narrow margins.void
addGlue()
Deprecated.Adds a glue that will be given the extra space, if this box is larger than its preferred size.void
addGridded
(JComponent component) Deprecated.Adds a gridded component, i.e.void
addGriddedButtons
(JButton[] buttons) Deprecated.Adds a sequence of related gridded buttons each separated by a default gap.void
addGriddedGrowing
(JComponent component) Deprecated.Adds a gridded component that grows.void
addGriddedGrowingButtons
(JButton[] buttons) Deprecated.Adds a sequence of gridded buttons that grow where each is separated by a default gap.void
Deprecated.Adds the standard horizontal gap for related components.void
addStrut
(ConstantSize width) Deprecated.Adds a horizontal strut of the specified width.void
Deprecated.Adds the standard horizontal gap for unrelated components.static ButtonBarBuilder
Deprecated.Creates and returns aButtonBarBuilder
with initialized with a left to right button order.boolean
Deprecated.Returns whether button sequences will be ordered from left to right or from right to left.void
Deprecated.Sets a default border that has a gap in the bar's north.void
setLeftToRightButtonOrder
(boolean newButtonOrder) Deprecated.Sets the order for button sequences to either left to right, or right to left.Methods inherited from class com.jgoodies.forms.builder.PanelBuilder
add, add, addLabel, addLabel, addLabel, addLabel, addROLabel, addROLabel, addROLabel, addROLabel, addSeparator, addSeparator, addSeparator, addSeparator, addTitle, addTitle, addTitle, getComponentFactory, getLabelForFeatureEnabledDefault, getPanel, isLabelForApplicable, isLabelForFeatureEnabled, setBackground, setBorder, setComponentFactory, setDefaultDialogBorder, setLabelFor, setLabelForFeatureEnabled, setLabelForFeatureEnabledDefault, setOpaque
Methods inherited from class com.jgoodies.forms.builder.AbstractFormBuilder
add, add, appendColumn, appendColumn, appendGlueColumn, appendGlueRow, appendLabelComponentsGapColumn, appendParagraphGapRow, appendRelatedComponentsGapColumn, appendRelatedComponentsGapRow, appendRow, appendRow, appendUnrelatedComponentsGapColumn, appendUnrelatedComponentsGapRow, cellConstraints, createLeftAdjustedConstraints, getColumn, getColumnCount, getColumnIncrementSign, getContainer, getLayout, getLeadingColumn, getRow, getRowCount, isLeftToRight, nextColumn, nextColumn, nextLine, nextLine, nextRow, nextRow, setAlignment, setBounds, setColumn, setColumnSpan, setExtent, setHAlignment, setLeftToRight, setOrigin, setRow, setRowSpan, setVAlignment
-
Constructor Details
-
ButtonBarBuilder
public ButtonBarBuilder()Deprecated.Constructs an instance ofButtonBarBuilder
on aJPanel
using a preconfigured FormLayout as layout manager. -
ButtonBarBuilder
Deprecated.Constructs an instance ofButtonBarBuilder
on the given panel using a preconfigured FormLayout as layout manager.- Parameters:
panel
- the layout container
-
-
Method Details
-
createLeftToRightBuilder
Deprecated.Creates and returns aButtonBarBuilder
with initialized with a left to right button order.- Returns:
- a button bar builder with button order set to left-to-right
-
isLeftToRightButtonOrder
public boolean isLeftToRightButtonOrder()Deprecated.Returns whether button sequences will be ordered from left to right or from right to left.- Returns:
- true if button sequences are ordered from left to right
- Since:
- 1.0.3
- See Also:
-
setLeftToRightButtonOrder
public void setLeftToRightButtonOrder(boolean newButtonOrder) Deprecated.Sets the order for button sequences to either left to right, or right to left.- Parameters:
newButtonOrder
- true if button sequences shall be ordered from left to right- Since:
- 1.0.3
- See Also:
-
setDefaultButtonBarGapBorder
public void setDefaultButtonBarGapBorder()Deprecated.Sets a default border that has a gap in the bar's north. -
addGriddedButtons
Deprecated.Adds a sequence of related gridded buttons each separated by a default gap. Honors this builder's button order. If you want to use a fixed left to right order, add individual buttons.- Parameters:
buttons
- an array of buttons to add- See Also:
-
addGriddedGrowingButtons
Deprecated.Adds a sequence of gridded buttons that grow where each is separated by a default gap. Honors this builder's button order. If you want to use a fixed left to right order, add individual buttons.- Parameters:
buttons
- an array of buttons to add- See Also:
-
addFixed
Deprecated.Adds a fixed size component. Unlike the gridded components, this component keeps its individual preferred dimension.- Parameters:
component
- the component to add
-
addFixedNarrow
Deprecated.Adds a fixed size component with narrow margins. Unlike the gridded components, this component keeps its individual preferred dimension.- Parameters:
component
- the component to add
-
addGridded
Deprecated.Adds a gridded component, i.e. a component that will get the same dimension as all other gridded components.- Parameters:
component
- the component to add
-
addGriddedGrowing
Deprecated.Adds a gridded component that grows. The component's initial size (before it grows) is the same as for all other gridded components.- Parameters:
component
- the component to add
-
addGlue
public void addGlue()Deprecated.Adds a glue that will be given the extra space, if this box is larger than its preferred size. -
addRelatedGap
public void addRelatedGap()Deprecated.Adds the standard horizontal gap for related components.- See Also:
-
addStrut
Deprecated.Adds a horizontal strut of the specified width. For related and unrelated components useaddRelatedGap()
andaddUnrelatedGap()
respectively.- Parameters:
width
- describes the gap width- See Also:
-
ButtonBarBuilder2
that comes with a smaller, safer, better, and more convenient API.