ButtonGroup (Java Platform SE 8 )
Keywords: javax.swing.ButtonGroup class
Date: 2026-03-29

javax.swing

## Class ButtonGroup

- java.lang.Object
- - javax.swing.ButtonGroup

- All Implemented Interfaces:
    Serializable

      public class ButtonGroup
      extends Object
      implements Serializable

  This class is used to create a multiple-exclusion scope for a set of buttons. Creating a set of buttons with the same `ButtonGroup` object means that turning "on" one of those buttons turns off all other buttons in the group.

  A `ButtonGroup` can be used with any set of objects that inherit from `AbstractButton`. Typically a button group contains instances of `JRadioButton`, `JRadioButtonMenuItem`, or `JToggleButton`. It wouldn't make sense to put an instance of `JButton` or `JMenuItem` in a button group because `JButton` and `JMenuItem` don't implement the selected state.

  Initially, all buttons in the group are unselected.

  For examples and further information on using button groups see How to Use Radio Buttons, a section in The Java Tutorial.

  Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeans™ has been added to the `java.beans` package. Please see `XMLEncoder`.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Vector<AbstractButton>` | `buttons`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ButtonGroup()` Creates a new `ButtonGroup`.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(AbstractButton b)` Adds the button to the group.
    `void` | `clearSelection()` Clears the selection such that none of the buttons in the `ButtonGroup` are selected.
    `int` | `getButtonCount()` Returns the number of buttons in the group.
    `Enumeration<AbstractButton>` | `getElements()` Returns all the buttons that are participating in this group.
    `ButtonModel` | `getSelection()` Returns the model of the selected button.
    `boolean` | `isSelected(ButtonModel m)` Returns whether a `ButtonModel` is selected.
    `void` | `remove(AbstractButton b)` Removes the button from the group.
    `void` | `setSelected(ButtonModel m, boolean b)` Sets the selected value for the `ButtonModel`.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### buttons

          protected Vector<AbstractButton> buttons

  - ### Constructor Detail

    - #### ButtonGroup

          public ButtonGroup()

      Creates a new `ButtonGroup`.

  - ### Method Detail

    - #### add

          public void add(AbstractButton b)

      Adds the button to the group.
      Parameters:
        `b` - the button to be added

    - #### remove

          public void remove(AbstractButton b)

      Removes the button from the group.
      Parameters:
        `b` - the button to be removed

    - #### clearSelection

          public void clearSelection()

      Clears the selection such that none of the buttons in the `ButtonGroup` are selected.
      Since:
        1.6

    - #### getElements

          public Enumeration<AbstractButton> getElements()

      Returns all the buttons that are participating in this group.
      Returns:
        an `Enumeration` of the buttons in this group

    - #### getSelection

          public ButtonModel getSelection()

      Returns the model of the selected button.
      Returns:
        the selected button model

    - #### setSelected

          public void setSelected(ButtonModel m,
                                  boolean b)

      Sets the selected value for the `ButtonModel`. Only one button in the group may be selected at a time.
      Parameters:
        `m` - the `ButtonModel`
        `b` - `true` if this button is to be selected, otherwise `false`

    - #### isSelected

          public boolean isSelected(ButtonModel m)

      Returns whether a `ButtonModel` is selected.
      Returns:
        `true` if the button is selected, otherwise returns `false`

    - #### getButtonCount

          public int getButtonCount()

      Returns the number of buttons in the group.
      Returns:
        the button count
      Since:
        1.3

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.