Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Java™ Platform Standard Ed. 6
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javax.swing
Interface ButtonModel

All Superinterfaces:
  ItemSelectable

All Known Implementing Classes:
  DefaultButtonModel, JToggleButton.ToggleButtonModel

    public interface ButtonModel

extends ItemSelectable

State model for buttons.

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.

Method Summary
`void` | `addActionListener(ActionListener l)` Adds an `ActionListener` to the model.
`void` | `addChangeListener(ChangeListener l)` Adds a `ChangeListener` to the model.
`void` | `addItemListener(ItemListener l)` Adds an `ItemListener` to 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 `ActionListener` from the model.
`void` | `removeChangeListener(ChangeListener l)` Removes a `ChangeListener` from the model.
`void` | `removeItemListener(ItemListener l)` Removes an `ItemListener` from the model.
`void` | `setActionCommand(String s)` Sets the action command string that gets sent as part of the `ActionEvent` when 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.

Methods inherited from interface java.awt.ItemSelectable
`getSelectedObjects`

Method Detail

### isArmed

    boolean isArmed()

  Indicates partial commitment towards triggering the button.

  Returns:
    `true` if the button is armed, and ready to be triggered
  See Also:
    `setArmed(boolean)`

### isSelected

    boolean isSelected()

  Indicates if the button has been selected. Only needed for certain types of buttons - such as radio buttons and check boxes.

  Returns:
    `true` if the button is selected

### isEnabled

    boolean isEnabled()

  Indicates if the button can be selected or triggered by an input device, such as a mouse pointer.

  Returns:
    `true` if the button is enabled

### isPressed

    boolean isPressed()

  Indicates if the button is pressed.

  Returns:
    `true` if the button is pressed

### isRollover

    boolean isRollover()

  Indicates that the mouse is over the button.

  Returns:
    `true` if the mouse is over the button

### setArmed

    void setArmed(boolean b)

  Marks the button as armed or unarmed.

  Parameters:
    `b` - whether or not the button should be armed

### setSelected

    void setSelected(boolean b)

  Selects or deselects the button.

  Parameters:
    `b` - `true` selects the button, `false` deselects the button

### setEnabled

    void setEnabled(boolean b)

  Enables or disables the button.

  Parameters:
    `b` - whether or not the button should be enabled
  See Also:
    `isEnabled()`

### setPressed

    void setPressed(boolean b)

  Sets the button to pressed or unpressed.

  Parameters:
    `b` - whether or not the button should be pressed
  See Also:
    `isPressed()`

### setRollover

    void setRollover(boolean b)

  Sets or clears the button's rollover state

  Parameters:
    `b` - whether or not the button is in the rollover state
  See Also:
    `isRollover()`

### setMnemonic

    void setMnemonic(int key)

  Sets the keyboard mnemonic (shortcut key or accelerator key) for the button.

  Parameters:
    `key` - an int specifying the accelerator key

### getMnemonic

    int getMnemonic()

  Gets the keyboard mnemonic for the button.

  Returns:
    an int specifying the accelerator key
  See Also:
    `setMnemonic(int)`

### setActionCommand

    void setActionCommand(String s)

  Sets the action command string that gets sent as part of the `ActionEvent` when the button is triggered.

  Parameters:
    `s` - the `String` that identifies the generated event
  See Also:
    `getActionCommand()`, `ActionEvent.getActionCommand()`

### getActionCommand

    String getActionCommand()

  Returns the action command string for the button.

  Returns:
    the `String` that identifies the generated event
  See Also:
    `setActionCommand(java.lang.String)`

### setGroup

    void setGroup(ButtonGroup group)

  Identifies the group the button belongs to -- needed for radio buttons, which are mutually exclusive within their group.

  Parameters:
    `group` - the `ButtonGroup` the button belongs to

### addActionListener

    void addActionListener(ActionListener l)

  Adds an `ActionListener` to the model.

  Parameters:
    `l` - the listener to add

### removeActionListener

    void removeActionListener(ActionListener l)

  Removes an `ActionListener` from the model.

  Parameters:
    `l` - the listener to remove

### addItemListener

    void addItemListener(ItemListener l)

  Adds an `ItemListener` to the model.

  Specified by:
    `addItemListener` in interface `ItemSelectable`
  Parameters:
    `l` - the listener to add
  See Also:
    `ItemEvent`

### removeItemListener

    void removeItemListener(ItemListener l)

  Removes an `ItemListener` from the model.

  Specified by:
    `removeItemListener` in interface `ItemSelectable`
  Parameters:
    `l` - the listener to remove
  See Also:
    `ItemEvent`

### addChangeListener

    void addChangeListener(ChangeListener l)

  Adds a `ChangeListener` to the model.

  Parameters:
    `l` - the listener to add

### removeChangeListener

    void removeChangeListener(ChangeListener l)

  Removes a `ChangeListener` from the model.

  Parameters:
    `l` - the listener to remove

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Java™ Platform Standard Ed. 6
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Submit a bug or feature
For further API reference and developer documentation, see Java SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright 2008 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.