Package arc.scene.ui

Class ButtonGroup<T extends Button>

java.lang.Object
arc.scene.ui.ButtonGroup<T>

public class ButtonGroup<T extends Button> extends Object
Manages a group of buttons to enforce a minimum and maximum number of checked buttons. This enables "radio button" functionality and more. A button may only be in one group at a time.

The canCheck(Button, boolean) method can be overridden to control if a button check or uncheck is allowed.

  • Constructor Details

    • ButtonGroup

      public ButtonGroup()
    • ButtonGroup

      public ButtonGroup(T... buttons)
  • Method Details

    • add

      public void add(T button)
    • add

      public void add(T... buttons)
    • remove

      public void remove(T button)
    • remove

      public void remove(T... buttons)
    • clear

      public void clear()
    • canCheck

      protected boolean canCheck(T button, boolean newState)
      Called when a button is checked or unchecked. If overridden, generally changing button checked states should not be done from within this method.
      Returns:
      True if the new state should be allowed.
    • uncheckAll

      public void uncheckAll()
      Sets all buttons' Button.isChecked() to false, regardless of setMinCheckCount(int).
    • getChecked

      public T getChecked()
      Returns:
      The first checked button, or null.
    • setChecked

      public void setChecked(String text)
      Sets the first TextButton with the specified text to checked.
    • getCheckedIndex

      public int getCheckedIndex()
      Returns:
      The first checked button index, or -1.
    • getAllChecked

      public Seq<T> getAllChecked()
    • getButtons

      public Seq<T> getButtons()
    • setMinCheckCount

      public void setMinCheckCount(int minCheckCount)
      Sets the minimum number of buttons that must be checked. Default is 1.
    • setMaxCheckCount

      public void setMaxCheckCount(int maxCheckCount)
      Sets the maximum number of buttons that can be checked. Set to -1 for no maximum. Default is 1.
    • setUncheckLast

      public void setUncheckLast(boolean uncheckLast)
      If true, when the maximum number of buttons are checked and an additional button is checked, the last button to be checked is unchecked so that the maximum is not exceeded. If false, additional buttons beyond the maximum are not allowed to be checked. Default is true.