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: 1.11 $
    Author:
    Karsten Lentzsch
    See Also:
    ButtonBarBuilder2, ButtonBarFactory, LayoutStyle
    • Constructor Detail

      • ButtonStackBuilder

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

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

        public ButtonStackBuilder​(FormLayout layout,
                                  javax.swing.JPanel panel)
        Constructs a ButtonStackBuilder on the given panel and layout. The layout must have at least one column.
        Parameters:
        layout - the FormLayout used to layout
        panel - the layout container
        Since:
        1.2
    • 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
      • addButton

        public void addButton​(javax.swing.JButton button)
        Adds the given button. Equivalent to:
        addButton(new JButton[]{button});
        Parameters:
        button - the button to add
        Since:
        1.3.0
      • addButton

        public void addButton​(javax.swing.JButton button1,
                              javax.swing.JButton button2)
        Adds the given buttons as a sequence of related buttons. Equivalent to:
        addButton(new JButton[]{button1, button2});
        Parameters:
        button1 - the first button to add
        button2 - the second button to add
        Since:
        1.3.0
      • addButton

        public void addButton​(javax.swing.JButton button1,
                              javax.swing.JButton button2,
                              javax.swing.JButton button3)
        Adds the given buttons as a sequence of related buttons. Equivalent to:
        addButton(new JButton[]{button1, button2, button3});
        Parameters:
        button1 - the first button to add
        button2 - the second button to add
        button3 - the third button to add
        Since:
        1.3.0
      • addButton

        public void addButton​(javax.swing.JButton button1,
                              javax.swing.JButton button2,
                              javax.swing.JButton button3,
                              javax.swing.JButton button4)
        Adds the given buttons as a sequence of related buttons. Equivalent to:
        addButton(new JButton[]{button1, button2, button3, button4});
        Parameters:
        button1 - the first button to add
        button2 - the second button to add
        button3 - the third button to add
        button4 - the fourth button to add
        Since:
        1.3.0
      • addButton

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

        public void addButton​(javax.swing.Action action)
        Creates a JButton for the given Action and adds the button to this builder. Equivalent to:
        addButton(new Action[]{action});
        Parameters:
        action - the Action used to create the button to add
        Since:
        1.3.0
      • addButton

        public void addButton​(javax.swing.Action action1,
                              javax.swing.Action action2)
        Creates JButtons for the given Actions and adds the buttons to this builder. Equivalent to:
        addButton(new Action[]{action1, action2});
        Parameters:
        action1 - the Action used to create the first button to add
        action2 - the Action used to create the second button to add
        Since:
        1.3.0
      • addButton

        public void addButton​(javax.swing.Action action1,
                              javax.swing.Action action2,
                              javax.swing.Action action3)
        Creates JButtons for the given Actions and adds the buttons to this builder. Equivalent to:
        addButton(new Action[]{action1, action2, action3});
        Parameters:
        action1 - the Action used to create the first button to add
        action2 - the Action used to create the second button to add
        action3 - the Action used to create the third button to add
        Since:
        1.3.0
      • addButton

        public void addButton​(javax.swing.Action action1,
                              javax.swing.Action action2,
                              javax.swing.Action action3,
                              javax.swing.Action action4)
        Creates JButtons for the given Actions and adds the buttons to this builder. Equivalent to:
        addButton(new Action[]{action1, action2, action3, action4});
        Parameters:
        action1 - the Action used to create the first button to add
        action2 - the Action used to create the second button to add
        action3 - the Action used to create the third button to add
        action4 - the Action used to create the fourth button to add
        Since:
        1.3.0
      • addButton

        public void addButton​(javax.swing.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.
        Parameters:
        actions - an array of buttons to add