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:
  • Constructor Details

    • ButtonStackBuilder

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

      public ButtonStackBuilder(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, 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 Details

    • addButtons

      public void addButtons(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(JComponent component)
      Adds a fixed size component.
      Parameters:
      component - the component to add
    • addGridded

      public void addGridded(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(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(JButton button1, 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(JButton button1, JButton button2, 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(JButton button1, JButton button2, JButton button3, 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(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(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(Action action1, 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(Action action1, Action action2, 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(Action action1, Action action2, Action action3, 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(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