# Class Command

java.lang.Object
com.codename1.ui.Command

All Implemented Interfaces:
  `ActionListener<ActionEvent>`

Direct Known Subclasses:
  `NavigationCommand, ShareService`

public class Command extends Object implements ActionListener<ActionEvent>
The Command class provides a useful extension to the ActionListener interface in cases where the same functionality may be accessed by several controls.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Command(String command)`
  Creates a new instance of Command
  `Command(String command, int id)`
  Creates a new instance of Command
  `Command(String command, Image icon)`
  Creates a new instance of Command
  `Command(String command, Image icon, int id)`
  Creates a new instance of Command

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `actionPerformed(ActionEvent evt)`
  This method is called when the soft button/Menu item is clicked
  `static Command`
  `create(String name, Image icon, ActionListener ev)`
  Creates a new command instance that encapsulates the action listener and details, the main value of this approach is in our ability to write commands using the shorthand lambda syntax of Java 8.
  `static Command`
  `createMaterial(String name, char icon, ActionListener ev)`
  Creates a new command instance that encapsulates the action listener and details, the main value of this approach is in our ability to write commands using the shorthand lambda syntax of Java 8.
  `boolean`
  `equals(Object obj)`
  compare two commands
  `Object`
  `getClientProperty(String key)`
  The client properties are a useful way to associate meta-data with a command without subclassing
  `String`
  `getCommandName()`
  gets the Command Name
  `Image`
  `getDisabledIcon()`
  Indicates the icon that is displayed on the button when the button is in the disabled state
  `Image`
  `getIcon()`
  Returns the icon representing the command
  `Font`
  `getIconFont()`

  ###### Returns

  `float`
  `getIconGapMM()`
  The gap between the text and the icon in millimeters or -1 for default
  `int`
  `getId()`
  Return the command ID
  `char`
  `getMaterialIcon()`

  ###### Returns

  `float`
  `getMaterialIconSize()`

  ###### Returns

  `Image`
  `getPressedIcon()`
  Indicates the icon that is displayed on the button when the button is in pressed state
  `Image`
  `getRolloverIcon()`
  Indicates the icon that is displayed on the button when the button is in rolled over state
  `int`
  `hashCode()`
  Allows storing commands in a vector/hashtable
  `boolean`
  `isDisposesDialog()`
  Indicates whether this command causes the dialog to dispose implicitly, defaults to true
  `boolean`
  `isEnabled()`
  Allows disabling/enabling the command
  `void`
  `putClientProperty(String key, Object value)`
  The client properties are a useful way to associate meta-data with a command without sub classing
  `void`
  `setCommandName(String command)`
  sets the Command name
  `void`
  `setDisabledIcon(Image disabledIcon)`
  Indicates the icon that is displayed on the button when the button is in the disabled state
  `void`
  `setDisposesDialog(boolean disposesDialog)`
  Indicates whether this command causes the dialog to dispose implicitly, defaults to true
  `void`
  `setEnabled(boolean enabled)`
  Allows disabling/enabling the command
  `void`
  `setIcon(Image icon)`
  Sets the icon for the command
  `void`
  `setIconFont(Font iconFont)`

  ###### Parameters

  `void`
  `setIconGapMM(float iconGapMM)`
  The gap between the text and the icon in millimeters or -1 for default
  `void`
  `setMaterialIcon(char materialIcon)`

  ###### Parameters

  `void`
  `setMaterialIconSize(float materialIconSize)`

  ###### Parameters

  `void`
  `setPressedIcon(Image pressedIcon)`
  Indicates the icon that is displayed on the button when the button is in pressed state
  `void`
  `setRolloverIcon(Image rolloverIcon)`
  Indicates the icon that is displayed on the button when the button is in rolled over state
  `String`
  `toString()`
  Returns a string representation of the object

  ### Methods inherited from class Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### Command

    public Command(String command)

    Creates a new instance of Command

    ###### Parameters

    - `command`: the string that will be placed on the Soft buttons\Menu

  - ### Command

    public Command(String command, Image icon)

    Creates a new instance of Command

    ###### Parameters

    - `command`: the string that will be placed on the Soft buttons\Menu

    - `icon`: the icon representing the command

  - ### Command

    public Command(String command, int id)

    Creates a new instance of Command

    ###### Parameters

    - `command`: the string that will be placed on the Soft buttons\Menu

    - `id`: @param id user defined ID for a command simplifying switch statement code working with a command

  - ### Command

    public Command(String command, Image icon, int id)

    Creates a new instance of Command

    ###### Parameters

    - `command`: the string that will be placed on the Soft buttons\Menu

    - `icon`: the icon representing the command

    - `id`: @param id user defined ID for a command simplifying switch statement code working with a command

- ## Method Details

  - ### create

    public static Command create(String name, Image icon, ActionListener ev)

    Creates a new command instance that encapsulates the action listener and details, the main value of this approach is in our ability to write commands using the shorthand lambda syntax of Java 8.

    ###### Parameters

    - `name`: the name/title of the command

    - `icon`: the icon for the command

    - `ev`: the even handler

    ###### Returns

    a newly created Command instance

  - ### createMaterial

    public static Command createMaterial(String name, char icon, ActionListener ev)

    Creates a new command instance that encapsulates the action listener and details, the main value of this approach is in our ability to write commands using the shorthand lambda syntax of Java 8.

    ###### Parameters

    - `name`: the name/title of the command

    - `icon`: the icon for the command

    - `ev`: the even handler

    ###### Returns

    a newly created Command instance

    ###### Since

    6.0

  - ### getId

    public int getId()

    Return the command ID

    ###### Returns

    the command ID

  - ### getCommandName

    public String getCommandName()

    gets the Command Name

    ###### Returns

    the Command name

  - ### setCommandName

    public void setCommandName(String command)

    sets the Command name

    ###### Parameters

    - `command`

  - ### getIcon

    public Image getIcon()

    Returns the icon representing the command

    ###### Returns

    an icon representing the command

  - ### setIcon

    public void setIcon(Image icon)

    Sets the icon for the command

    ###### Parameters

    - `icon`: the new icon

  - ### toString

    public String toString()

    Returns a string representation of the object

    ###### Returns

    Returns a string representation of the object

    Overrides:
      `toString` in class `Object`

  - ### getPressedIcon

    public Image getPressedIcon()

    Indicates the icon that is displayed on the button when the button is in pressed state

    ###### Returns

    icon used

  - ### setPressedIcon

    public void setPressedIcon(Image pressedIcon)

    Indicates the icon that is displayed on the button when the button is in pressed state

    ###### Parameters

    - `pressedIcon`: icon used

  - ### getDisabledIcon

    public Image getDisabledIcon()

    Indicates the icon that is displayed on the button when the button is in the disabled state

    ###### Returns

    icon used

  - ### setDisabledIcon

    public void setDisabledIcon(Image disabledIcon)

    Indicates the icon that is displayed on the button when the button is in the disabled state

    ###### Parameters

    - `disabledIcon`: icon used

  - ### getRolloverIcon

    public Image getRolloverIcon()

    Indicates the icon that is displayed on the button when the button is in rolled over state

    ###### Returns

    icon used

  - ### setRolloverIcon

    public void setRolloverIcon(Image rolloverIcon)

    Indicates the icon that is displayed on the button when the button is in rolled over state

    ###### Parameters

    - `rolloverIcon`: icon to use

  - ### equals

    public boolean equals(Object obj)

    compare two commands

    ###### Parameters

    - `obj`: a Command Object to compare

    ###### Returns

    true if the obj has the same command name

    Overrides:
      `equals` in class `Object`

  - ### hashCode

    public int hashCode()

    Allows storing commands in a vector/hashtable

    ###### Returns

    unique hashcode for the command class

    Overrides:
      `hashCode` in class `Object`

  - ### actionPerformed

    public void actionPerformed(ActionEvent evt)

    This method is called when the soft button/Menu item is clicked

    ###### Parameters

    - `evt`: the Event Object
    Specified by:
      `actionPerformed` in interface `ActionListener<ActionEvent>`

  - ### isDisposesDialog

    public boolean isDisposesDialog()
    Indicates whether this command causes the dialog to dispose implicitly, defaults to true

  - ### setDisposesDialog

    public void setDisposesDialog(boolean disposesDialog)
    Indicates whether this command causes the dialog to dispose implicitly, defaults to true

  - ### isEnabled

    public boolean isEnabled()

    Allows disabling/enabling the command

    ###### Returns

    the enabled

  - ### setEnabled

    public void setEnabled(boolean enabled)

    Allows disabling/enabling the command

    ###### Parameters

    - `enabled`: the enabled to set

  - ### getClientProperty

    public Object getClientProperty(String key)

    The client properties are a useful way to associate meta-data with a command without subclassing

    ###### Parameters

    - `key`: an arbitrary user key

    ###### Returns

    an arbitrary user object

  - ### putClientProperty

    public void putClientProperty(String key, Object value)

    The client properties are a useful way to associate meta-data with a command without sub classing

    ###### Parameters

    - `key`: an arbitrary user key

    - `value`: an arbitrary user object, null to remove

  - ### getMaterialIcon

    public char getMaterialIcon()

    ###### Returns

    the materialIcon

  - ### setMaterialIcon

    public void setMaterialIcon(char materialIcon)

    ###### Parameters

    - `materialIcon`: the materialIcon to set

  - ### getIconGapMM

    public float getIconGapMM()

    The gap between the text and the icon in millimeters or -1 for default

    ###### Returns

    the iconGapMM

  - ### setIconGapMM

    public void setIconGapMM(float iconGapMM)

    The gap between the text and the icon in millimeters or -1 for default

    ###### Parameters

    - `iconGapMM`: the iconGapMM to set

  - ### getMaterialIconSize

    public float getMaterialIconSize()

    ###### Returns

    the materialIconSize

  - ### setMaterialIconSize

    public void setMaterialIconSize(float materialIconSize)

    ###### Parameters

    - `materialIconSize`: the materialIconSize to set

  - ### getIconFont

    public Font getIconFont()

    ###### Returns

    the set iconFont or null if none defined (meaning for material icons instead of the system default MaterialDesign font

  - ### setIconFont

    public void setIconFont(Font iconFont)

    ###### Parameters

    - `iconFont`: use iconFont for material icons instead of the system default MaterialDesign font