# Class AbstractButton.AccessibleAbstractButton

java.lang.Object
javax.accessibility.AccessibleContext
java.awt.Component.AccessibleAWTComponent
java.awt.Container.AccessibleAWTContainer
javax.swing.JComponent.AccessibleJComponent
javax.swing.AbstractButton.AccessibleAbstractButton

All Implemented Interfaces:
  `Serializable, AccessibleAction, AccessibleComponent, AccessibleExtendedComponent, AccessibleText, AccessibleValue`

Direct Known Subclasses:
  `JButton.AccessibleJButton, JMenuItem.AccessibleJMenuItem, JToggleButton.AccessibleJToggleButton`

Enclosing class:
  `AbstractButton`

protected abstract class AbstractButton.AccessibleAbstractButton extends JComponent.AccessibleJComponent implements AccessibleAction, AccessibleValue, AccessibleText, AccessibleExtendedComponent
This class implements accessibility support for the `AbstractButton` class. It provides an implementation of the Java Accessibility API appropriate to button and menu item user-interface elements.

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.4

- ## Nested Class Summary

  ### Nested classes/interfaces declared in class JComponent.AccessibleJComponent

  `JComponent.AccessibleJComponent.AccessibleContainerHandler, JComponent.AccessibleJComponent.AccessibleFocusHandler`

  ### Nested classes/interfaces declared in class Component.AccessibleAWTComponent

  `Component.AccessibleAWTComponent.AccessibleAWTComponentHandler, Component.AccessibleAWTComponent.AccessibleAWTFocusHandler`

- ## Field Summary

  ### Fields declared in class JComponent.AccessibleJComponent

  `accessibleFocusHandler`

  ### Fields declared in class Container.AccessibleAWTContainer

  `accessibleContainerHandler`

  ### Fields declared in class Component.AccessibleAWTComponent

  `accessibleAWTComponentHandler, accessibleAWTFocusHandler`

  ### Fields declared in class AccessibleContext

  `ACCESSIBLE_ACTION_PROPERTY, ACCESSIBLE_ACTIVE_DESCENDANT_PROPERTY, ACCESSIBLE_CARET_PROPERTY, ACCESSIBLE_CHILD_PROPERTY, ACCESSIBLE_COMPONENT_BOUNDS_CHANGED, ACCESSIBLE_DESCRIPTION_PROPERTY, ACCESSIBLE_HYPERTEXT_OFFSET, ACCESSIBLE_INVALIDATE_CHILDREN, ACCESSIBLE_NAME_PROPERTY, ACCESSIBLE_SELECTION_PROPERTY, ACCESSIBLE_STATE_PROPERTY, ACCESSIBLE_TABLE_CAPTION_CHANGED, ACCESSIBLE_TABLE_COLUMN_DESCRIPTION_CHANGED, ACCESSIBLE_TABLE_COLUMN_HEADER_CHANGED, ACCESSIBLE_TABLE_MODEL_CHANGED, ACCESSIBLE_TABLE_ROW_DESCRIPTION_CHANGED, ACCESSIBLE_TABLE_ROW_HEADER_CHANGED, ACCESSIBLE_TABLE_SUMMARY_CHANGED, ACCESSIBLE_TEXT_ATTRIBUTES_CHANGED, ACCESSIBLE_TEXT_PROPERTY, ACCESSIBLE_VALUE_PROPERTY, ACCESSIBLE_VISIBLE_DATA_PROPERTY, accessibleDescription, accessibleName, accessibleParent`

  ### Fields declared in interface AccessibleAction

  `CLICK, DECREMENT, INCREMENT, TOGGLE_EXPAND, TOGGLE_POPUP`

  ### Fields declared in interface AccessibleText

  `CHARACTER, SENTENCE, WORD`

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `AccessibleAbstractButton()`
  Constructor for subclasses to call.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `doAccessibleAction(int i)`
  Perform the specified Action on the object
  `AccessibleAction`
  `getAccessibleAction()`
  Get the AccessibleAction associated with this object.
  `int`
  `getAccessibleActionCount()`
  Returns the number of Actions available in this object.
  `String`
  `getAccessibleActionDescription(int i)`
  Return a description of the specified action of the object.
  `AccessibleIcon[]`
  `getAccessibleIcon()`
  Get the AccessibleIcons associated with this object if one or more exist.
  `AccessibleKeyBinding`
  `getAccessibleKeyBinding()`
  Returns key bindings associated with this object
  `String`
  `getAccessibleName()`
  Returns the accessible name of this object.
  `AccessibleRelationSet`
  `getAccessibleRelationSet()`
  Get the AccessibleRelationSet associated with this object if one exists.
  `AccessibleStateSet`
  `getAccessibleStateSet()`
  Get the state set of this object.
  `AccessibleValue`
  `getAccessibleValue()`
  Get the AccessibleValue associated with this object.
  `String`
  `getAfterIndex(int part, int index)`
  Returns the String after a given index.
  `String`
  `getAtIndex(int part, int index)`
  Returns the String at a given index.
  `String`
  `getBeforeIndex(int part, int index)`
  Returns the String before a given index.
  `int`
  `getCaretPosition()`
  Return the zero-based offset of the caret.
  `AttributeSet`
  `getCharacterAttribute(int i)`
  Return the AttributeSet for a given character at a given index
  `Rectangle`
  `getCharacterBounds(int i)`
  Determine the bounding box of the character at the given index into the string.
  `int`
  `getCharCount()`
  Return the number of characters (valid indices)
  `Number`
  `getCurrentAccessibleValue()`
  Get the value of this object as a Number.
  `int`
  `getIndexAtPoint(Point p)`
  Given a point in local coordinates, return the zero-based index of the character under that Point.
  `Number`
  `getMaximumAccessibleValue()`
  Get the maximum value of this object as a Number.
  `Number`
  `getMinimumAccessibleValue()`
  Get the minimum value of this object as a Number.
  `String`
  `getSelectedText()`
  Returns the portion of the text that is selected.
  `int`
  `getSelectionEnd()`
  Returns the end offset within the selected text.
  `int`
  `getSelectionStart()`
  Returns the start offset within the selected text.
  `String`
  `getTitledBorderText()`
  Returns the titled border text
  `String`
  `getToolTipText()`
  Returns the tool tip text
  `boolean`
  `setCurrentAccessibleValue(Number n)`
  Set the value of this object as a Number.

  ### Methods declared in class JComponent.AccessibleJComponent

  `addPropertyChangeListener, getAccessibleChild, getAccessibleChildrenCount, getAccessibleDescription, getAccessibleRole, getBorderTitle, removePropertyChangeListener`

  ### Methods declared in class Container.AccessibleAWTContainer

  `getAccessibleAt`

  ### Methods declared in class Component.AccessibleAWTComponent

  `addFocusListener, contains, getAccessibleComponent, getAccessibleIndexInParent, getAccessibleParent, getBackground, getBounds, getCursor, getFont, getFontMetrics, getForeground, getLocale, getLocation, getLocationOnScreen, getSize, isEnabled, isFocusTraversable, isShowing, isVisible, removeFocusListener, requestFocus, setBackground, setBounds, setCursor, setEnabled, setFont, setForeground, setLocation, setSize, setVisible`

  ### Methods declared in class AccessibleContext

  `firePropertyChange, getAccessibleEditableText, getAccessibleSelection, getAccessibleTable, getAccessibleText, setAccessibleDescription, setAccessibleName, setAccessibleParent`

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods declared in interface AccessibleComponent

  `addFocusListener, contains, getAccessibleAt, getBackground, getBounds, getCursor, getFont, getFontMetrics, getForeground, getLocation, getLocationOnScreen, getSize, isEnabled, isFocusTraversable, isShowing, isVisible, removeFocusListener, requestFocus, setBackground, setBounds, setCursor, setEnabled, setFont, setForeground, setLocation, setSize, setVisible`

- ## Constructor Details

  - ### AccessibleAbstractButton

    protected AccessibleAbstractButton()
    Constructor for subclasses to call.

- ## Method Details

  - ### getAccessibleName

    public String getAccessibleName()
    Returns the accessible name of this object.
    Overrides:
      `getAccessibleName` in class `JComponent.AccessibleJComponent`
    Returns:
      the localized name of the object -- can be `null` if this object does not have a name
    See Also:
      - `AccessibleContext.setAccessibleName(String)`

  - ### getAccessibleIcon

    public AccessibleIcon[] getAccessibleIcon()
    Get the AccessibleIcons associated with this object if one or more exist. Otherwise return null.
    Overrides:
      `getAccessibleIcon` in class `AccessibleContext`
    Returns:
      an array of `AccessibleIcon` if supported by object; otherwise return `null`
    Since:
      1.3
    See Also:
      - `AccessibleIcon`

  - ### getAccessibleStateSet

    public AccessibleStateSet getAccessibleStateSet()
    Get the state set of this object.
    Overrides:
      `getAccessibleStateSet` in class `JComponent.AccessibleJComponent`
    Returns:
      an instance of AccessibleState containing the current state of the object
    See Also:
      - `AccessibleState`

  - ### getAccessibleRelationSet

    public AccessibleRelationSet getAccessibleRelationSet()
    Get the AccessibleRelationSet associated with this object if one exists. Otherwise return null.
    Overrides:
      `getAccessibleRelationSet` in class `AccessibleContext`
    Returns:
      an `AccessibleRelationSet` if supported by object; otherwise return `null`
    Since:
      1.3
    See Also:
      - `AccessibleRelation`

  - ### getAccessibleAction

    public AccessibleAction getAccessibleAction()
    Get the AccessibleAction associated with this object. In the implementation of the Java Accessibility API for this class, return this object, which is responsible for implementing the AccessibleAction interface on behalf of itself.
    Overrides:
      `getAccessibleAction` in class `AccessibleContext`
    Returns:
      this object
    See Also:
      - `AccessibleAction`

  - ### getAccessibleValue

    public AccessibleValue getAccessibleValue()
    Get the AccessibleValue associated with this object. In the implementation of the Java Accessibility API for this class, return this object, which is responsible for implementing the AccessibleValue interface on behalf of itself.
    Overrides:
      `getAccessibleValue` in class `AccessibleContext`
    Returns:
      this object
    See Also:
      - `AccessibleValue`

  - ### getAccessibleActionCount

    public int getAccessibleActionCount()
    Returns the number of Actions available in this object. The default behavior of a button is to have one action - toggle the button.
    Specified by:
      `getAccessibleActionCount` in interface `AccessibleAction`
    Returns:
      1, the number of Actions in this object

  - ### getAccessibleActionDescription

    public String getAccessibleActionDescription(int i)
    Return a description of the specified action of the object.
    Specified by:
      `getAccessibleActionDescription` in interface `AccessibleAction`
    Parameters:
      `i` - zero-based index of the actions
    Returns:
      a `String` description of the action
    See Also:
      - `AccessibleAction.getAccessibleActionCount()`

  - ### doAccessibleAction

    public boolean doAccessibleAction(int i)
    Perform the specified Action on the object
    Specified by:
      `doAccessibleAction` in interface `AccessibleAction`
    Parameters:
      `i` - zero-based index of actions
    Returns:
      true if the action was performed; else false.
    See Also:
      - `AccessibleAction.getAccessibleActionCount()`

  - ### getCurrentAccessibleValue

    public Number getCurrentAccessibleValue()
    Get the value of this object as a Number.
    Specified by:
      `getCurrentAccessibleValue` in interface `AccessibleValue`
    Returns:
      An Integer of 0 if this isn't selected or an Integer of 1 if this is selected.
    See Also:
      - `AbstractButton.isSelected()`

  - ### setCurrentAccessibleValue

    public boolean setCurrentAccessibleValue(Number n)
    Set the value of this object as a Number.
    Specified by:
      `setCurrentAccessibleValue` in interface `AccessibleValue`
    Parameters:
      `n` - the number to use for the value
    Returns:
      True if the value was set.
    See Also:
      - `AccessibleValue.getCurrentAccessibleValue()`

  - ### getMinimumAccessibleValue

    public Number getMinimumAccessibleValue()
    Get the minimum value of this object as a Number.
    Specified by:
      `getMinimumAccessibleValue` in interface `AccessibleValue`
    Returns:
      an Integer of 0.
    See Also:
      - `AccessibleValue.getMaximumAccessibleValue()`

  - ### getMaximumAccessibleValue

    public Number getMaximumAccessibleValue()
    Get the maximum value of this object as a Number.
    Specified by:
      `getMaximumAccessibleValue` in interface `AccessibleValue`
    Returns:
      An Integer of 1.
    See Also:
      - `AccessibleValue.getMinimumAccessibleValue()`

  - ### getIndexAtPoint

    public int getIndexAtPoint(Point p)
    Given a point in local coordinates, return the zero-based index of the character under that Point. If the point is invalid, this method returns -1. Note: the AbstractButton must have a valid size (e.g. have been added to a parent container whose ancestor container is a valid top-level window) for this method to be able to return a meaningful value.
    Specified by:
      `getIndexAtPoint` in interface `AccessibleText`
    Parameters:
      `p` - the Point in local coordinates
    Returns:
      the zero-based index of the character under Point p; if Point is invalid returns -1.
    Since:
      1.3

  - ### getCharacterBounds

    public Rectangle getCharacterBounds(int i)
    Determine the bounding box of the character at the given index into the string. The bounds are returned in local coordinates. If the index is invalid an empty rectangle is returned. Note: the AbstractButton must have a valid size (e.g. have been added to a parent container whose ancestor container is a valid top-level window) for this method to be able to return a meaningful value.
    Specified by:
      `getCharacterBounds` in interface `AccessibleText`
    Parameters:
      `i` - the index into the String
    Returns:
      the screen coordinates of the character's the bounding box, if index is invalid returns an empty rectangle.
    Since:
      1.3

  - ### getCharCount

    public int getCharCount()
    Return the number of characters (valid indices)
    Specified by:
      `getCharCount` in interface `AccessibleText`
    Returns:
      the number of characters
    Since:
      1.3

  - ### getCaretPosition

    public int getCaretPosition()
    Return the zero-based offset of the caret. Note: That to the right of the caret will have the same index value as the offset (the caret is between two characters).
    Specified by:
      `getCaretPosition` in interface `AccessibleText`
    Returns:
      the zero-based offset of the caret.
    Since:
      1.3

  - ### getAtIndex

    public String getAtIndex(int part, int index)
    Returns the String at a given index.
    Specified by:
      `getAtIndex` in interface `AccessibleText`
    Parameters:
      `part` - the AccessibleText.CHARACTER, AccessibleText.WORD, or AccessibleText.SENTENCE to retrieve
      `index` - an index within the text >= 0
    Returns:
      the letter, word, or sentence, null for an invalid index or part
    Since:
      1.3

  - ### getAfterIndex

    public String getAfterIndex(int part, int index)
    Returns the String after a given index.
    Specified by:
      `getAfterIndex` in interface `AccessibleText`
    Parameters:
      `part` - the AccessibleText.CHARACTER, AccessibleText.WORD, or AccessibleText.SENTENCE to retrieve
      `index` - an index within the text >= 0
    Returns:
      the letter, word, or sentence, null for an invalid index or part
    Since:
      1.3

  - ### getBeforeIndex

    public String getBeforeIndex(int part, int index)
    Returns the String before a given index.
    Specified by:
      `getBeforeIndex` in interface `AccessibleText`
    Parameters:
      `part` - the AccessibleText.CHARACTER, AccessibleText.WORD, or AccessibleText.SENTENCE to retrieve
      `index` - an index within the text >= 0
    Returns:
      the letter, word, or sentence, null for an invalid index or part
    Since:
      1.3

  - ### getCharacterAttribute

    public AttributeSet getCharacterAttribute(int i)
    Return the AttributeSet for a given character at a given index
    Specified by:
      `getCharacterAttribute` in interface `AccessibleText`
    Parameters:
      `i` - the zero-based index into the text
    Returns:
      the AttributeSet of the character
    Since:
      1.3

  - ### getSelectionStart

    public int getSelectionStart()
    Returns the start offset within the selected text. If there is no selection, but there is a caret, the start and end offsets will be the same.
    Specified by:
      `getSelectionStart` in interface `AccessibleText`
    Returns:
      the index into the text of the start of the selection
    Since:
      1.3

  - ### getSelectionEnd

    public int getSelectionEnd()
    Returns the end offset within the selected text. If there is no selection, but there is a caret, the start and end offsets will be the same.
    Specified by:
      `getSelectionEnd` in interface `AccessibleText`
    Returns:
      the index into the text of the end of the selection
    Since:
      1.3

  - ### getSelectedText

    public String getSelectedText()
    Returns the portion of the text that is selected.
    Specified by:
      `getSelectedText` in interface `AccessibleText`
    Returns:
      the String portion of the text that is selected
    Since:
      1.3

  - ### getToolTipText

    public String getToolTipText()
    Returns the tool tip text
    Specified by:
      `getToolTipText` in interface `AccessibleExtendedComponent`
    Overrides:
      `getToolTipText` in class `JComponent.AccessibleJComponent`
    Returns:
      the tool tip text, if supported, of the object; otherwise, null
    Since:
      1.4

  - ### getTitledBorderText

    public String getTitledBorderText()
    Returns the titled border text
    Specified by:
      `getTitledBorderText` in interface `AccessibleExtendedComponent`
    Overrides:
      `getTitledBorderText` in class `JComponent.AccessibleJComponent`
    Returns:
      the titled border text, if supported, of the object; otherwise, null
    Since:
      1.4

  - ### getAccessibleKeyBinding

    public AccessibleKeyBinding getAccessibleKeyBinding()
    Returns key bindings associated with this object
    Specified by:
      `getAccessibleKeyBinding` in interface `AccessibleExtendedComponent`
    Overrides:
      `getAccessibleKeyBinding` in class `JComponent.AccessibleJComponent`
    Returns:
      the key bindings, if supported, of the object; otherwise, null
    Since:
      1.4
    See Also:
      - `AccessibleKeyBinding`