DefaultCellEditor (Java Platform SE 8 )
Keywords: javax.swing.DefaultCellEditor class
Date: 2026-07-22

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

- - ### Nested Class Summary

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

  - ### Field Summary

    Fields
    Modifier and Type | Field and 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 inherited from class javax.swing.AbstractCellEditor

      `changeEvent, listenerList`

  - ### Constructor Summary

    Constructors
    Constructor and 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

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and 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 inherited from class javax.swing.AbstractCellEditor

      `addCellEditorListener, fireEditingCanceled, fireEditingStopped, getCellEditorListeners, removeCellEditorListener`

    - ### Methods inherited from class java.lang.Object

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

    - ### Methods inherited from interface javax.swing.CellEditor

      `addCellEditorListener, removeCellEditorListener`

- - ### Field Detail

    - #### 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 Detail

    - #### DefaultCellEditor

          @ConstructorProperties(value="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 Detail

    - #### 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

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.