public interface ButtonModel extends ItemSelectable
This model is used for regular buttons, as well as check boxes and radio buttons, which are special kinds of buttons. In practice, a button's UI takes the responsibility of calling methods on its model to manage the state, as detailed below:
 In simple terms, pressing and releasing the mouse over a regular
 button triggers the button and causes and ActionEvent
 to be fired. The same behavior can be produced via a keyboard key
 defined by the look and feel of the button (typically the SPACE BAR).
 Pressing and releasing this key while the button has
 focus will give the same results. For check boxes and radio buttons, the
 mouse or keyboard equivalent sequence just described causes the button
 to become selected.
 
 In details, the state model for buttons works as follows
 when used with the mouse:
 
 Pressing the mouse on top of a button makes the model both
 armed and pressed. As long as the mouse remains down,
 the model remains pressed, even if the mouse moves
 outside the button. On the contrary, the model is only
 armed while the mouse remains pressed within the bounds of
 the button (it can move in or out of the button, but the model
 is only armed during the portion of time spent within the button).
 A button is triggered, and an ActionEvent is fired,
 when the mouse is released while the model is armed
 - meaning when it is released over top of the button after the mouse
 has previously been pressed on that button (and not already released).
 Upon mouse release, the model becomes unarmed and unpressed.
 
 In details, the state model for buttons works as follows
 when used with the keyboard:
 
 Pressing the look and feel defined keyboard key while the button
 has focus makes the model both armed and pressed. As long as this key
 remains down, the model remains in this state. Releasing the key sets
 the model to unarmed and unpressed, triggers the button, and causes an
 ActionEvent to be fired.
| Modifier and Type | Method and Description | 
|---|---|
| void | addActionListener(ActionListener l)Adds an  ActionListenerto the model. | 
| void | addChangeListener(ChangeListener l)Adds a  ChangeListenerto the model. | 
| void | addItemListener(ItemListener l)Adds an  ItemListenerto the model. | 
| String | getActionCommand()Returns the action command string for the button. | 
| int | getMnemonic()Gets the keyboard mnemonic for the button. | 
| boolean | isArmed()Indicates partial commitment towards triggering the
 button. | 
| boolean | isEnabled()Indicates if the button can be selected or triggered by
 an input device, such as a mouse pointer. | 
| boolean | isPressed()Indicates if the button is pressed. | 
| boolean | isRollover()Indicates that the mouse is over the button. | 
| boolean | isSelected()Indicates if the button has been selected. | 
| void | removeActionListener(ActionListener l)Removes an  ActionListenerfrom the model. | 
| void | removeChangeListener(ChangeListener l)Removes a  ChangeListenerfrom the model. | 
| void | removeItemListener(ItemListener l)Removes an  ItemListenerfrom the model. | 
| void | setActionCommand(String s)Sets the action command string that gets sent as part of the
  ActionEventwhen the button is triggered. | 
| void | setArmed(boolean b)Marks the button as armed or unarmed. | 
| void | setEnabled(boolean b)Enables or disables the button. | 
| void | setGroup(ButtonGroup group)Identifies the group the button belongs to --
 needed for radio buttons, which are mutually
 exclusive within their group. | 
| void | setMnemonic(int key)Sets the keyboard mnemonic (shortcut key or
 accelerator key) for the button. | 
| void | setPressed(boolean b)Sets the button to pressed or unpressed. | 
| void | setRollover(boolean b)Sets or clears the button's rollover state | 
| void | setSelected(boolean b)Selects or deselects the button. | 
getSelectedObjectsboolean isArmed()
true if the button is armed,
         and ready to be triggeredsetArmed(boolean)boolean isSelected()
true if the button is selectedboolean isEnabled()
true if the button is enabledboolean isPressed()
true if the button is pressedboolean isRollover()
true if the mouse is over the buttonvoid setArmed(boolean b)
b - whether or not the button should be armedvoid setSelected(boolean b)
b - true selects the button,
          false deselects the buttonvoid setEnabled(boolean b)
b - whether or not the button should be enabledisEnabled()void setPressed(boolean b)
b - whether or not the button should be pressedisPressed()void setRollover(boolean b)
b - whether or not the button is in the rollover stateisRollover()void setMnemonic(int key)
key - an int specifying the accelerator keyint getMnemonic()
setMnemonic(int)void setActionCommand(String s)
ActionEvent when the button is triggered.s - the String that identifies the generated eventgetActionCommand(), 
ActionEvent.getActionCommand()String getActionCommand()
String that identifies the generated eventsetActionCommand(java.lang.String)void setGroup(ButtonGroup group)
group - the ButtonGroup the button belongs tovoid addActionListener(ActionListener l)
ActionListener to the model.l - the listener to addvoid removeActionListener(ActionListener l)
ActionListener from the model.l - the listener to removevoid addItemListener(ItemListener l)
ItemListener to the model.addItemListener in interface ItemSelectablel - the listener to addItemEventvoid removeItemListener(ItemListener l)
ItemListener from the model.removeItemListener in interface ItemSelectablel - the listener to removeItemEventvoid addChangeListener(ChangeListener l)
ChangeListener to the model.l - the listener to addvoid removeChangeListener(ChangeListener l)
ChangeListener from the model.l - the listener to remove 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, 2017, Oracle and/or its affiliates.  All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.