Class CollapsiblePanel

All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible

public class CollapsiblePanel extends JPanel
The user-triggered collapsable contentPanel containing the component (trigger) in the titled border
See Also:
  • Field Details

  • Constructor Details

    • CollapsiblePanel

      public CollapsiblePanel()
    • CollapsiblePanel

      public CollapsiblePanel(JRadioButton component)
      Constructor for an option button controlled collapsable panel.

      This is useful when a group of options each have unique sub contents. The radio buttons should be created, grouped, and then used to construct their own collapsable panels. This way choosing a different option in the same option group will collapse all unselected options. Expanded panels draw a border around the contents and through the radio button in the fashion of a titled border.

      Parameters:
      component - Radio button that expands and collapses the contentPanel based on if it is selected or not
    • CollapsiblePanel

      public CollapsiblePanel(String text)
      Constructor for a label/button controlled collapsable panel.

      Displays a clickable title that resembles a native titled border except for an arrow on the right side indicating an expandable contentPanel. The actual border only appears when the contentPanel is expanded.

      Parameters:
      text - Title of the collapsable contentPanel in string format, used to create a button with text and an arrow icon
    • CollapsiblePanel

      public CollapsiblePanel(String text, int titleJustification, int titlePosition)
      Constructor for a label/button controlled collapsable panel.
      Parameters:
      text -
      titleJustification - use TitledBorder constant
      titlePosition - use TitledBorder constant
  • Method Details

    • setTitleComponentText

      public void setTitleComponentText(String text)
    • getTitleComponentText

      public String getTitleComponentText()
    • getContentPane

      public JPanel getContentPane()
      This class requires that all content be placed within a designated contentPanel, this method returns that contentPanel.
      Returns:
      contentPanel The content contentPanel
    • getPreferredSize

      public Dimension getPreferredSize()
      Override make sure preferred width is never smaller than titleComponent preferred width, even when collapsed.
      Overrides:
      getPreferredSize in class JComponent
      Returns:
    • getMinimumSize

      public Dimension getMinimumSize()
      Override make sure minimum width is never smaller than titleComponent preferred size, even when collapsed.
      Overrides:
      getMinimumSize in class JComponent
      Returns:
    • setCollapsed

      public void setCollapsed(boolean collapse)
      Collapses or expands the panel.

      This is done by adding or removing the content pane, alternating between a frame and empty border, and changing the title arrow. Also, the current state is stored in the collapsed boolean.

      Parameters:
      collapse - When set to true, the contentPanel is collapsed, else it is expanded
    • isCollapsed

      public boolean isCollapsed()
      Returns the current state of the contentPanel, collapsed (true) or expanded (false).
      Returns:
      collapsed Returns true if the contentPanel is collapsed and false if it is expanded