Module java.desktop
Package javax.swing

Interface ButtonModel

所有超接口:
ItemSelectable
所有已知实现类:
DefaultButtonModel, JToggleButton.ToggleButtonModel

public interface ButtonModel extends ItemSelectable
按钮的状态模型。

此模型用于常规按钮,以及特殊类型的按钮,如复选框和单选按钮。在实践中,按钮的UI负责调用其模型上的方法来管理状态,如下所述:

简单来说,按下和释放鼠标在常规按钮上会触发按钮,并导致触发ActionEvent。通过按钮的外观和感觉定义的键盘键也可以产生相同的行为(通常是空格键)。在按钮具有焦点时按下并释放此键将产生相同的结果。对于复选框和单选按钮,刚才描述的鼠标或键盘等效序列会导致按钮被选中。

详细来说,当使用鼠标时,按钮的状态模型工作如下:
在按钮上按下鼠标会使模型同时处于armed和pressed状态。只要鼠标保持按下,即使鼠标移出按钮,模型仍保持pressed状态。相反,只有在鼠标保持在按钮范围内按下时,模型才处于armed状态(鼠标可以在按钮内部移动,但模型只在鼠标停留在按钮内部时处于armed状态)。当鼠标在模型处于armed状态时释放时 - 也就是在鼠标先前按下该按钮后(尚未释放)再在按钮顶部释放鼠标时 - 按钮将被触发,并触发ActionEvent。释放鼠标后,模型变为unarmed和unpressed。

详细来说,当使用键盘时,按钮的状态模型工作如下:
在按钮具有焦点时按下外观和感觉定义的键盘键会使模型同时处于armed和pressed状态。只要此键保持按下,模型将保持在此状态。释放键会将模型设置为unarmed和unpressed,触发按钮,并导致触发ActionEvent

自 JDK 版本:
1.2
  • Method Details

    • isArmed

      boolean isArmed()
      指示部分承诺以触发按钮。
      返回:
      如果按钮处于armed状态且准备好被触发,则返回true
      另请参阅:
    • isSelected

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

      boolean isEnabled()
      指示按钮是否可以由输入设备(如鼠标指针)选择或触发。
      返回:
      如果按钮已启用,则返回true
    • isPressed

      boolean isPressed()
      指示按钮是否被按下。
      返回:
      如果按钮已被按下,则返回true
    • isRollover

      boolean isRollover()
      指示鼠标是否悬停在按钮上。
      返回:
      如果鼠标悬停在按钮上,则返回true
    • setArmed

      void setArmed(boolean b)
      将按钮标记为armed或unarmed。
      参数:
      b - 指示按钮是否应该被armed
    • setSelected

      void setSelected(boolean b)
      选择或取消选择按钮。
      参数:
      b - true选择按钮,false取消选择按钮
    • setEnabled

      void setEnabled(boolean b)
      启用或禁用按钮。
      参数:
      b - 指示按钮是否应该被启用
      另请参阅:
    • setPressed

      void setPressed(boolean b)
      设置按钮为pressed或unpressed。
      参数:
      b - 指示按钮是否应该被pressed
      另请参阅:
    • setRollover

      void setRollover(boolean b)
      设置或清除按钮的rollover状态。
      参数:
      b - 指示按钮是否处于rollover状态
      另请参阅:
    • setMnemonic

      void setMnemonic(int key)
      为按钮设置键盘助记键(快捷键或加速键)。
      参数:
      key - 指定加速键的int值
    • getMnemonic

      int getMnemonic()
      获取按钮的键盘助记键。
      返回:
      指定加速键的int值
      另请参阅:
    • setActionCommand

      void setActionCommand(String s)
      设置在触发按钮时作为ActionEvent的一部分发送的操作命令字符串。
      参数:
      s - 用于标识生成事件的String
      另请参阅:
    • getActionCommand

      String getActionCommand()
      返回按钮的操作命令字符串。
      返回:
      用于标识生成事件的String
      另请参阅:
    • setGroup

      void setGroup(ButtonGroup group)
      标识按钮所属的组 - 对于单选按钮而言,它们在组内是互斥的,因此需要此标识。
      参数:
      group - 按钮所属的ButtonGroup
    • getGroup

      default ButtonGroup getGroup()
      返回按钮所属的组。通常与单选按钮一起使用,它们在组内是互斥的。
      实现要求:
      此方法的默认实现返回null。子类应返回由setGroup()设置的组。
      返回:
      按钮所属的ButtonGroup
      自 JDK 版本:
      10
    • addActionListener

      void addActionListener(ActionListener l)
      向模型添加一个ActionListener
      参数:
      l - 要添加的监听器
    • removeActionListener

      void removeActionListener(ActionListener l)
      从模型中移除一个ActionListener
      参数:
      l - 要移除的监听器
    • addItemListener

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

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

      void addChangeListener(ChangeListener l)
      向模型添加一个ChangeListener
      参数:
      l - 要添加的监听器
    • removeChangeListener

      void removeChangeListener(ChangeListener l)
      从模型中移除一个ChangeListener
      参数:
      l - 要移除的监听器