Module java.desktop
Package javax.swing

Class DefaultButtonModel

java.lang.Object
javax.swing.DefaultButtonModel
所有已实现的接口:
ItemSelectable, Serializable, ButtonModel
直接已知的子类:
JToggleButton.ToggleButtonModel

public class DefaultButtonModel extends Object implements ButtonModel, Serializable
Button组件数据模型的默认实现。

警告: 该类的序列化对象将不兼容未来的Swing版本。当前的序列化支持适用于短期存储或在运行相同Swing版本的应用程序之间的RMI。从1.4开始,已将所有JavaBeans的长期存储支持添加到java.beans包中。请参阅XMLEncoder

自:
1.2
  • Field Details

    • stateMask

      protected int stateMask
      用于存储按钮状态的位掩码。
    • actionCommand

      protected String actionCommand
      按钮触发的动作命令字符串。
    • group

      protected ButtonGroup group
      按钮所属的按钮组。
    • mnemonic

      protected int mnemonic
      按钮的助记键。
    • changeEvent

      protected transient ChangeEvent changeEvent
      由于事件的唯一状态是源属性,因此每个按钮模型实例只需要一个ChangeEvent。生成的事件的源始终为“this”。
    • listenerList

      protected EventListenerList listenerList
      存储在此模型上的监听器。
    • ARMED

      public static final int ARMED
      标识位掩码中的“armed”位,表示对选择/触发按钮的部分承诺。
      参见:
    • SELECTED

      public static final int SELECTED
      标识位掩码中的“selected”位,表示按钮已被选中。仅适用于某些类型的按钮 - 如单选按钮或复选框。
      参见:
    • PRESSED

      public static final int PRESSED
      标识位掩码中的“pressed”位,表示按钮已被按下。
      参见:
    • ENABLED

      public static final int ENABLED
      标识位掩码中的“enabled”位,表示按钮可以被输入设备(如鼠标指针)选择。
      参见:
    • ROLLOVER

      public static final int ROLLOVER
      标识位掩码中的“rollover”位,表示鼠标悬停在按钮上。
      参见:
  • Constructor Details

    • DefaultButtonModel

      public DefaultButtonModel()
      构造一个DefaultButtonModel
  • Method Details

    • setActionCommand

      public void setActionCommand(String actionCommand)
      设置在触发按钮时作为ActionEvent的一部分发送的动作命令字符串。
      指定者:
      setActionCommand 在接口 ButtonModel
      参数:
      actionCommand - 标识生成的事件的String
      参见:
    • getActionCommand

      public String getActionCommand()
      返回按钮的动作命令字符串。
      指定者:
      getActionCommand 在接口 ButtonModel
      返回:
      标识生成的事件的String
      参见:
    • isArmed

      public boolean isArmed()
      表示对触发按钮的部分承诺。
      指定者:
      isArmed 在接口 ButtonModel
      返回:
      如果按钮已装备并准备触发,则返回true
      参见:
    • isSelected

      public boolean isSelected()
      表示按钮是否已被选中。仅适用于某些类型的按钮 - 如单选按钮和复选框。
      指定者:
      isSelected 在接口 ButtonModel
      返回:
      如果按钮已被选中,则返回true
    • isEnabled

      public boolean isEnabled()
      表示按钮是否可以被输入设备(如鼠标指针)选择或触发。
      指定者:
      isEnabled 在接口 ButtonModel
      返回:
      如果按钮已启用,则返回true
    • isPressed

      public boolean isPressed()
      表示按钮是否已被按下。
      指定者:
      isPressed 在接口 ButtonModel
      返回:
      如果按钮已被按下,则返回true
    • isRollover

      public boolean isRollover()
      表示鼠标是否悬停在按钮上。
      指定者:
      isRollover 在接口 ButtonModel
      返回:
      如果鼠标悬停在按钮上,则返回true
    • setArmed

      public void setArmed(boolean b)
      将按钮标记为已装备或未装备。
      指定者:
      setArmed 在接口 ButtonModel
      参数:
      b - 按钮是否应该被激活
    • setEnabled

      public void setEnabled(boolean b)
      启用或禁用按钮。
      指定者:
      setEnabled 在接口 ButtonModel
      参数:
      b - 按钮是否应该被启用
      另请参阅:
    • setSelected

      public void setSelected(boolean b)
      选择或取消选择按钮。
      指定者:
      setSelected 在接口 ButtonModel
      参数:
      b - true 选择按钮,false 取消选择按钮
    • setPressed

      public void setPressed(boolean b)
      将按钮设置为按下或未按下状态。
      指定者:
      setPressed 在接口 ButtonModel
      参数:
      b - 按钮是否应该被按下
      另请参阅:
    • setRollover

      public void setRollover(boolean b)
      设置或清除按钮的悬停状态
      指定者:
      setRollover 在接口 ButtonModel
      参数:
      b - 按钮是否处于悬停状态
      另请参阅:
    • setMnemonic

      public void setMnemonic(int key)
      为按钮设置键盘助记键(快捷键或加速键)。
      指定者:
      setMnemonic 在接口 ButtonModel
      参数:
      key - 指定加速键的整数
    • getMnemonic

      public int getMnemonic()
      获取按钮的键盘助记键。
      指定者:
      getMnemonic 在接口 ButtonModel
      返回:
      指定加速键的整数
      另请参阅:
    • addChangeListener

      public void addChangeListener(ChangeListener l)
      向模型添加一个ChangeListener
      指定者:
      addChangeListener 在接口 ButtonModel
      参数:
      l - 要添加的监听器
    • removeChangeListener

      public void removeChangeListener(ChangeListener l)
      从模型中移除一个ChangeListener
      指定者:
      removeChangeListener 在接口 ButtonModel
      参数:
      l - 要移除的监听器
    • getChangeListeners

      public ChangeListener[] getChangeListeners()
      返回在此DefaultButtonModel上注册的所有更改监听器的数组。
      返回:
      所有此模型的ChangeListener或如果当前没有注册任何更改监听器,则返回空数组
      自:
      1.4
      另请参阅:
    • fireStateChanged

      protected void fireStateChanged()
      通知所有已注册对此事件类型感兴趣的监听器。事件实例是延迟创建的。
      另请参阅:
    • addActionListener

      public void addActionListener(ActionListener l)
      向模型添加一个ActionListener
      指定者:
      addActionListener 在接口 ButtonModel
      参数:
      l - 要添加的监听器
    • removeActionListener

      public void removeActionListener(ActionListener l)
      从模型中移除一个ActionListener
      指定者:
      removeActionListener 在接口 ButtonModel
      参数:
      l - 要移除的监听器
    • getActionListeners

      public ActionListener[] getActionListeners()
      返回在此DefaultButtonModel上注册的所有动作监听器的数组。
      返回:
      所有此模型的ActionListener或如果当前没有注册任何动作监听器,则返回空数组
      自:
      1.4
      另请参阅:
    • fireActionPerformed

      protected void fireActionPerformed(ActionEvent e)
      通知所有已注册对此事件类型感兴趣的监听器。
      参数:
      e - 要传递给监听器的ActionEvent
      另请参阅:
    • addItemListener

      public void addItemListener(ItemListener l)
      向模型添加一个ItemListener
      指定者:
      addItemListener 在接口 ButtonModel
      指定者:
      addItemListener 在接口 ItemSelectable
      参数:
      l - 要添加的监听器
      另请参阅:
    • removeItemListener

      public void removeItemListener(ItemListener l)
      从模型中移除一个ItemListener
      指定者:
      removeItemListener 在接口 ButtonModel
      指定者:
      removeItemListener 在接口 ItemSelectable
      参数:
      l - 要移除的监听器
      另请参阅:
    • getItemListeners

      public ItemListener[] getItemListeners()
      返回在此DefaultButtonModel上注册的所有项目监听器的数组。
      返回:
      所有此模型的ItemListener或如果当前没有注册任何项目监听器,则返回空数组
      自:
      1.4
      另请参阅:
    • fireItemStateChanged

      protected void fireItemStateChanged(ItemEvent e)
      通知所有已注册对此事件类型感兴趣的监听器。
      参数:
      e - 要传递给监听器的ItemEvent
      另请参阅:
    • getListeners

      public <T extends EventListener> T[] getListeners(Class<T> listenerType)
      返回当前在此模型上注册为FooListener的所有对象的数组。使用addFooListener方法注册FooListener

      您可以使用类字面量(例如FooListener.class)指定listenerType参数。例如,您可以使用以下代码查询DefaultButtonModel实例m的动作监听器:

      ActionListener[] als = (ActionListener[])(m.getListeners(ActionListener.class));
      如果不存在此类监听器,则此方法返回一个空数组。
      类型参数:
      T - 请求的监听器的类型
      参数:
      listenerType - 请求的监听器的类型;此参数应指定一个继承自java.util.EventListener的接口
      返回值:
      返回在此模型上注册为FooListener的所有对象数组,如果没有添加此类监听器,则返回空数组
      抛出:
      ClassCastException - 如果listenerType未指定实现java.util.EventListener的类或接口
      自版本:
      1.3
      参见:
    • getSelectedObjects

      public Object[] getSelectedObjects()
      被重写以返回null
      指定者:
      getSelectedObjects 在接口 ItemSelectable
      返回值:
      选定对象的列表,或null
    • setGroup

      public void setGroup(ButtonGroup group)
      标识按钮所属的组 - 对于单选按钮而言是必需的,它们在组内是互斥的。
      指定者:
      setGroup 在接口 ButtonModel
      参数:
      group - 按钮所属的ButtonGroup
    • getGroup

      public ButtonGroup getGroup()
      返回按钮所属的组。通常与单选按钮一起使用,它们在组内是互斥的。
      指定者:
      getGroup 在接口 ButtonModel
      返回值:
      按钮所属的ButtonGroup
      自版本:
      1.3