Class ButtonStackBuilder


  • public final class ButtonStackBuilder
    extends PanelBuilder
    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) {
         ButtonStackBuilder builder = new ButtonStackBuilder();
         builder.addGridded(close);
         builder.addUnrelatedGap();
         builder.addGridded(up);
         builder.addRelatedGap();
         builder.addGridded(down);
         return builder.getPanel();
     }
     
    Version:
    $Revision$
    Author:
    Karsten Lentzsch
    See Also:
    ButtonBarBuilder, ButtonBarFactory, LayoutStyle
    • Constructor Detail

      • ButtonStackBuilder

        public ButtonStackBuilder()
        Constructs an instance of ButtonStackBuilder on a default JPanel using a preconfigured FormLayout as layout manager.
      • ButtonStackBuilder

        public ButtonStackBuilder​(javax.swing.JPanel panel)
        Constructs an instance of ButtonStackBuilder on the given panel using a preconfigured FormLayout as layout manager.
        Parameters:
        panel - the layout container
    • Method Detail

      • addButtons

        public void addButtons​(javax.swing.JButton[] buttons)
        Adds a sequence of related buttons separated by a default gap.
        Parameters:
        buttons - an array of buttons to add
      • addFixed

        public void addFixed​(javax.swing.JComponent component)
        Adds a fixed size component.
        Parameters:
        component - the component to add
      • addGridded

        public void addGridded​(javax.swing.JComponent component)
        Adds a gridded component.
        Parameters:
        component - the component to add
      • addGlue

        public void addGlue()
        Adds a glue that will be given the extra space, if this box is larger than its preferred size.
      • addRelatedGap

        public void addRelatedGap()
        Adds the standard gap for related components.
      • addUnrelatedGap

        public void addUnrelatedGap()
        Adds the standard gap for unrelated components.
      • addStrut

        public void addStrut​(ConstantSize size)
        Adds a strut of a specified size.
        Parameters:
        size - a constant that describes the gap