DefaultCellEditor (Java SE 17 & JDK 17)
Description: declaration: module: java.desktop, package: javax.swing, class: DefaultCellEditor
Keywords: javax.swing.DefaultCellEditor class

Module java.desktop
Package javax.swing

# Class DefaultCellEditor

java.lang.Object
javax.swing.AbstractCellEditor
javax.swing.DefaultCellEditor

All Implemented Interfaces:
  `Serializable`, `CellEditor`, `TableCellEditor`, `TreeCellEditor`

public class DefaultCellEditor extends AbstractCellEditor implements TableCellEditor, TreeCellEditor
The default editor for table and tree cells.

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

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `protected class`
  `DefaultCellEditor.EditorDelegate`
  The protected `EditorDelegate` class.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected int`
  `clickCountToStart`
  An integer specifying the number of clicks needed to start editing.
  `protected DefaultCellEditor.EditorDelegate`
  `delegate`
  The delegate class which handles all methods sent from the `CellEditor`.
  `protected JComponent`
  `editorComponent`
  The Swing component being edited.

  ### Fields declared in class javax.swing.AbstractCellEditor

  `changeEvent, listenerList`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DefaultCellEditor(JCheckBox checkBox)`
  Constructs a `DefaultCellEditor` object that uses a check box.
  `DefaultCellEditor(JComboBox<?> comboBox)`
  Constructs a `DefaultCellEditor` object that uses a combo box.
  `DefaultCellEditor(JTextField textField)`
  Constructs a `DefaultCellEditor` that uses a text field.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `cancelCellEditing()`
  Forwards the message from the `CellEditor` to the `delegate`.
  `Object`
  `getCellEditorValue()`
  Forwards the message from the `CellEditor` to the `delegate`.
  `int`
  `getClickCountToStart()`
  Returns the number of clicks needed to start editing.
  `Component`
  `getComponent()`
  Returns a reference to the editor component.
  `Component`
  `getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column)`
  Implements the `TableCellEditor` interface.
  `Component`
  `getTreeCellEditorComponent(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row)`
  Implements the `TreeCellEditor` interface.
  `boolean`
  `isCellEditable(EventObject anEvent)`
  Forwards the message from the `CellEditor` to the `delegate`.
  `void`
  `setClickCountToStart(int count)`
  Specifies the number of clicks needed to start editing.
  `boolean`
  `shouldSelectCell(EventObject anEvent)`
  Forwards the message from the `CellEditor` to the `delegate`.
  `boolean`
  `stopCellEditing()`
  Forwards the message from the `CellEditor` to the `delegate`.

  ### Methods declared in class javax.swing.AbstractCellEditor

  `addCellEditorListener, fireEditingCanceled, fireEditingStopped, getCellEditorListeners, removeCellEditorListener`

  ### Methods declared in class java.lang.Object

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

  ### Methods declared in interface javax.swing.CellEditor

  `addCellEditorListener, removeCellEditorListener`

- ## Field Details

  - ### editorComponent

    protected JComponent editorComponent
    The Swing component being edited.

  - ### delegate

    protected DefaultCellEditor.EditorDelegate delegate
    The delegate class which handles all methods sent from the `CellEditor`.

  - ### clickCountToStart

    protected int clickCountToStart
    An integer specifying the number of clicks needed to start editing. Even if `clickCountToStart` is defined as zero, it will not initiate until a click occurs.

- ## Constructor Details

  - ### DefaultCellEditor

    @ConstructorProperties("component") public DefaultCellEditor(JTextField textField)
    Constructs a `DefaultCellEditor` that uses a text field.
    Parameters:
      `textField` - a `JTextField` object

  - ### DefaultCellEditor

    public DefaultCellEditor(JCheckBox checkBox)
    Constructs a `DefaultCellEditor` object that uses a check box.
    Parameters:
      `checkBox` - a `JCheckBox` object

  - ### DefaultCellEditor

    public DefaultCellEditor(JComboBox<?> comboBox)
    Constructs a `DefaultCellEditor` object that uses a combo box.
    Parameters:
      `comboBox` - a `JComboBox` object

- ## Method Details

  - ### getComponent

    public Component getComponent()
    Returns a reference to the editor component.
    Returns:
      the editor `Component`

  - ### setClickCountToStart

    public void setClickCountToStart(int count)
    Specifies the number of clicks needed to start editing.
    Parameters:
      `count` - an int specifying the number of clicks needed to start editing
    See Also:
      - `getClickCountToStart()`

  - ### getClickCountToStart

    public int getClickCountToStart()
    Returns the number of clicks needed to start editing.
    Returns:
      the number of clicks needed to start editing

  - ### getCellEditorValue

    public Object getCellEditorValue()
    Forwards the message from the `CellEditor` to the `delegate`.
    Specified by:
      `getCellEditorValue` in interface `CellEditor`
    Returns:
      the value contained in the editor
    See Also:
      - `DefaultCellEditor.EditorDelegate.getCellEditorValue()`

  - ### isCellEditable

    public boolean isCellEditable(EventObject anEvent)
    Forwards the message from the `CellEditor` to the `delegate`.
    Specified by:
      `isCellEditable` in interface `CellEditor`
    Overrides:
      `isCellEditable` in class `AbstractCellEditor`
    Parameters:
      `anEvent` - an event object
    Returns:
      true
    See Also:
      - `DefaultCellEditor.EditorDelegate.isCellEditable(EventObject)`

  - ### shouldSelectCell

    public boolean shouldSelectCell(EventObject anEvent)
    Forwards the message from the `CellEditor` to the `delegate`.
    Specified by:
      `shouldSelectCell` in interface `CellEditor`
    Overrides:
      `shouldSelectCell` in class `AbstractCellEditor`
    Parameters:
      `anEvent` - an event object
    Returns:
      true
    See Also:
      - `DefaultCellEditor.EditorDelegate.shouldSelectCell(EventObject)`

  - ### stopCellEditing

    public boolean stopCellEditing()
    Forwards the message from the `CellEditor` to the `delegate`.
    Specified by:
      `stopCellEditing` in interface `CellEditor`
    Overrides:
      `stopCellEditing` in class `AbstractCellEditor`
    Returns:
      true
    See Also:
      - `DefaultCellEditor.EditorDelegate.stopCellEditing()`

  - ### cancelCellEditing

    public void cancelCellEditing()
    Forwards the message from the `CellEditor` to the `delegate`.
    Specified by:
      `cancelCellEditing` in interface `CellEditor`
    Overrides:
      `cancelCellEditing` in class `AbstractCellEditor`
    See Also:
      - `DefaultCellEditor.EditorDelegate.cancelCellEditing()`

  - ### getTreeCellEditorComponent

    public Component getTreeCellEditorComponent(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row)
    Implements the `TreeCellEditor` interface.
    Specified by:
      `getTreeCellEditorComponent` in interface `TreeCellEditor`
    Parameters:
      `tree` - the JTree that is asking the editor to edit; this parameter can be null
      `value` - the value of the cell to be edited
      `isSelected` - true if the cell is to be rendered with selection highlighting
      `expanded` - true if the node is expanded
      `leaf` - true if the node is a leaf node
      `row` - the row index of the node being edited
    Returns:
      the component for editing

  - ### getTableCellEditorComponent

    public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column)
    Implements the `TableCellEditor` interface.
    Specified by:
      `getTableCellEditorComponent` in interface `TableCellEditor`
    Parameters:
      `table` - the `JTable` that is asking the editor to edit; can be `null`
      `value` - the value of the cell to be edited; it is up to the specific editor to interpret and draw the value. For example, if value is the string "true", it could be rendered as a string or it could be rendered as a check box that is checked. `null` is a valid value
      `isSelected` - true if the cell is to be rendered with highlighting
      `row` - the row of the cell being edited
      `column` - the column of the cell being edited
    Returns:
      the component for editing