This documentation differs from the official API. Jadeite adds extra features to the API including: variable font sizes, constructions examples, placeholders for classes and methods, and auto-generated “See Also” links. Additionally it is missing some items found in standard Javadoc documentation, including: generics type information, “Deprecated” tags and comments, “See Also” links, along with other minor differences. Please send any questions or feedback to bam@cs.cmu.edu.


javax.swing
interface ButtonModel

All Superinterfaces:
ItemSelectable
All Known Implementing Classes:
DefaultButtonModel, JToggleButton.ToggleButtonModel

Most common way to construct:

AbstractButton b = …;

ButtonModel model = b.getModel();

Based on 45 examples


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

          Adds an ActionListener to the model.
 void

          Adds a ChangeListener to the model.
 void

          Adds an ItemListener to the model.
 String

          Returns the action command string for the button.
 int

          Gets the keyboard mnemonic for the button.
 boolean

          Indicates partial commitment towards triggering the button.
 boolean

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

          Indicates if the button is pressed.
 boolean

          Indicates that the mouse is over the button.
 boolean

          Indicates if the button has been selected.
 void

          Removes an ActionListener from the model.
 void

          Removes a ChangeListener from the model.
 void

          Removes an ItemListener from the model.
 void

          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

          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 class java.awt.ItemSelectable
addItemListener, getSelectedObjects, removeItemListener
 

Method Detail

addActionListener

public void addActionListener(ActionListener l)
Adds an ActionListener to the model.

Parameters:
l - the listener to add

addChangeListener

public void addChangeListener(ChangeListener l)
Adds a ChangeListener to the model.

Parameters:
l - the listener to add

addItemListener

public void addItemListener(ItemListener l)
Adds an ItemListener to the model.

Parameters:
l - the listener to add

getActionCommand

public String getActionCommand()
Returns the action command string for the button.

Returns:
the String that identifies the generated event

getMnemonic

public int getMnemonic()
Gets the keyboard mnemonic for the button.

Returns:
an int specifying the accelerator key

isArmed

public boolean isArmed()
Indicates partial commitment towards triggering the button.

Returns:
true if the button is armed, and ready to be triggered

isEnabled

public 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

public boolean isPressed()
Indicates if the button is pressed.

Returns:
true if the button is pressed

isRollover

public boolean isRollover()
Indicates that the mouse is over the button.

Returns:
true if the mouse is over the button

isSelected

public 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

removeActionListener

public void removeActionListener(ActionListener l)
Removes an ActionListener from the model.

Parameters:
l - the listener to remove

removeChangeListener

public void removeChangeListener(ChangeListener l)
Removes a ChangeListener from the model.

Parameters:
l - the listener to remove

removeItemListener

public void removeItemListener(ItemListener l)
Removes an ItemListener from the model.

Parameters:
l - the listener to remove

setActionCommand

public 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

setArmed

public void setArmed(boolean b)
Marks the button as armed or unarmed.

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

setEnabled

public void setEnabled(boolean b)
Enables or disables the button.

Parameters:
b - whether or not the button should be enabled

setGroup

public 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

setMnemonic

public void setMnemonic(int key)
Sets the keyboard mnemonic (shortcut key or accelerator key) for the button.

Parameters:
key - an int specifying the accelerator key

setPressed

public void setPressed(boolean b)
Sets the button to pressed or unpressed.

Parameters:
b - whether or not the button should be pressed

setRollover

public void setRollover(boolean b)
Sets or clears the button's rollover state

Parameters:
b - whether or not the button is in the rollover state

setSelected

public void setSelected(boolean b)
Selects or deselects the button.

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


This documentation differs from the official API. Jadeite adds extra features to the API including: variable font sizes, constructions examples, placeholders for classes and methods, and auto-generated “See Also” links. Additionally it is missing some items found in standard Javadoc documentation, including: generics type information, “Deprecated” tags and comments, “See Also” links, along with other minor differences. Please send any questions or feedback to bam@cs.cmu.edu.
This page displays the Jadeite version of the documention, which is derived from the offical documentation that contains this copyright notice:
Copyright 2008 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.
The official Sun™ documentation can be found here at http://java.sun.com/javase/6/docs/api/.