Module java.desktop
Package javax.swing

Class DefaultButtonModel

  • All Implemented Interfaces:
    ItemSelectable, Serializable, ButtonModel
    Direct Known Subclasses:
    JToggleButton.ToggleButtonModel


    public class DefaultButtonModel
    extends Object
    implements ButtonModel, Serializable
    The default implementation of a Button component's data model.

    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.

    Since:
    1.2
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected String actionCommand
      The action command string fired by the button.
      static int ARMED
      Identifies the "armed" bit in the bitmask, which indicates partial commitment towards choosing/triggering the button.
      protected ChangeEvent changeEvent
      Only one ChangeEvent is needed per button model instance since the event's only state is the source property.
      static int ENABLED
      Identifies the "enabled" bit in the bitmask, which indicates that the button can be selected by an input device (such as a mouse pointer).
      protected ButtonGroup group
      The button group that the button belongs to.
      protected EventListenerList listenerList
      Stores the listeners on this model.
      protected int mnemonic
      The button's mnemonic.
      static int PRESSED
      Identifies the "pressed" bit in the bitmask, which indicates that the button is pressed.
      static int ROLLOVER
      Identifies the "rollover" bit in the bitmask, which indicates that the mouse is over the button.
      static int SELECTED
      Identifies the "selected" bit in the bitmask, which indicates that the button has been selected.
      protected int stateMask
      The bitmask used to store the state of the button.
    • Constructor Summary

      Constructors 
      Constructor Description
      DefaultButtonModel​()
      Constructs a DefaultButtonModel.
    • Field Detail

      • stateMask

        protected int stateMask
        The bitmask used to store the state of the button.
      • actionCommand

        protected String actionCommand
        The action command string fired by the button.
      • group

        protected ButtonGroup group
        The button group that the button belongs to.
      • mnemonic

        protected int mnemonic
        The button's mnemonic.
      • changeEvent

        protected transient ChangeEvent changeEvent
        Only one ChangeEvent is needed per button model instance since the event's only state is the source property. The source of events generated is always "this".
      • listenerList

        protected EventListenerList listenerList
        Stores the listeners on this model.
      • ARMED

        public static final int ARMED
        Identifies the "armed" bit in the bitmask, which indicates partial commitment towards choosing/triggering the button.
        See Also:
        Constant Field Values
      • SELECTED

        public static final int SELECTED
        Identifies the "selected" bit in the bitmask, which indicates that the button has been selected. Only needed for certain types of buttons - such as radio button or check box.
        See Also:
        Constant Field Values
      • PRESSED

        public static final int PRESSED
        Identifies the "pressed" bit in the bitmask, which indicates that the button is pressed.
        See Also:
        Constant Field Values
      • ENABLED

        public static final int ENABLED
        Identifies the "enabled" bit in the bitmask, which indicates that the button can be selected by an input device (such as a mouse pointer).
        See Also:
        Constant Field Values
      • ROLLOVER

        public static final int ROLLOVER
        Identifies the "rollover" bit in the bitmask, which indicates that the mouse is over the button.
        See Also:
        Constant Field Values
    • Constructor Detail

      • DefaultButtonModel

        public DefaultButtonModel​()
        Constructs a DefaultButtonModel.
    • Method Detail

      • isArmed

        public boolean isArmed​()
        Indicates partial commitment towards triggering the button.
        Specified by:
        isArmed in interface ButtonModel
        Returns:
        true if the button is armed, and ready to be triggered
        See Also:
        ButtonModel.setArmed(boolean)
      • 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.
        Specified by:
        isSelected in interface ButtonModel
        Returns:
        true if the button is selected
      • isEnabled

        public boolean isEnabled​()
        Indicates if the button can be selected or triggered by an input device, such as a mouse pointer.
        Specified by:
        isEnabled in interface ButtonModel
        Returns:
        true if the button is enabled
      • isPressed

        public boolean isPressed​()
        Indicates if the button is pressed.
        Specified by:
        isPressed in interface ButtonModel
        Returns:
        true if the button is pressed
      • isRollover

        public boolean isRollover​()
        Indicates that the mouse is over the button.
        Specified by:
        isRollover in interface ButtonModel
        Returns:
        true if the mouse is over the button
      • setArmed

        public void setArmed​(boolean b)
        Marks the button as armed or unarmed.
        Specified by:
        setArmed in interface ButtonModel
        Parameters:
        b - whether or not the button should be armed
      • setEnabled

        public void setEnabled​(boolean b)
        Enables or disables the button.
        Specified by:
        setEnabled in interface ButtonModel
        Parameters:
        b - whether or not the button should be enabled
        See Also:
        ButtonModel.isEnabled()
      • setSelected

        public void setSelected​(boolean b)
        Selects or deselects the button.
        Specified by:
        setSelected in interface ButtonModel
        Parameters:
        b - true selects the button, false deselects the button
      • setPressed

        public void setPressed​(boolean b)
        Sets the button to pressed or unpressed.
        Specified by:
        setPressed in interface ButtonModel
        Parameters:
        b - whether or not the button should be pressed
        See Also:
        ButtonModel.isPressed()
      • setRollover

        public void setRollover​(boolean b)
        Sets or clears the button's rollover state
        Specified by:
        setRollover in interface ButtonModel
        Parameters:
        b - whether or not the button is in the rollover state
        See Also:
        ButtonModel.isRollover()
      • setMnemonic

        public void setMnemonic​(int key)
        Sets the keyboard mnemonic (shortcut key or accelerator key) for the button.
        Specified by:
        setMnemonic in interface ButtonModel
        Parameters:
        key - an int specifying the accelerator key
      • fireStateChanged

        protected void fireStateChanged​()
        Notifies all listeners that have registered interest for notification on this event type. The event instance is created lazily.
        See Also:
        EventListenerList
      • fireActionPerformed

        protected void fireActionPerformed​(ActionEvent e)
        Notifies all listeners that have registered interest for notification on this event type.
        Parameters:
        e - the ActionEvent to deliver to listeners
        See Also:
        EventListenerList
      • fireItemStateChanged

        protected void fireItemStateChanged​(ItemEvent e)
        Notifies all listeners that have registered interest for notification on this event type.
        Parameters:
        e - the ItemEvent to deliver to listeners
        See Also:
        EventListenerList
      • getListeners

        public <T extends EventListener> T[] getListeners​(Class<T> listenerType)
        Returns an array of all the objects currently registered as FooListeners upon this model. FooListeners are registered using the addFooListener method.

        You can specify the listenerType argument with a class literal, such as FooListener.class. For example, you can query a DefaultButtonModel instance m for its action listeners with the following code:

        ActionListener[] als = (ActionListener[])(m.getListeners(ActionListener.class));
        If no such listeners exist, this method returns an empty array.
        Type Parameters:
        T - the type of requested listeners
        Parameters:
        listenerType - the type of listeners requested; this parameter should specify an interface that descends from java.util.EventListener
        Returns:
        an array of all objects registered as FooListeners on this model, or an empty array if no such listeners have been added
        Throws:
        ClassCastException - if listenerType doesn't specify a class or interface that implements java.util.EventListener
        Since:
        1.3
        See Also:
        getActionListeners(), getChangeListeners(), getItemListeners()
      • getSelectedObjects

        public Object[] getSelectedObjects​()
        Overridden to return null.
        Specified by:
        getSelectedObjects in interface ItemSelectable
        Returns:
        the list of selected objects, or null
      • setGroup

        public void setGroup​(ButtonGroup group)
        Identifies the group the button belongs to -- needed for radio buttons, which are mutually exclusive within their group.
        Specified by:
        setGroup in interface ButtonModel
        Parameters:
        group - the ButtonGroup the button belongs to
      • getGroup

        public ButtonGroup getGroup​()
        Returns the group that the button belongs to. Normally used with radio buttons, which are mutually exclusive within their group.
        Returns:
        the ButtonGroup that the button belongs to
        Since:
        1.3