Module javafx.controls
Package javafx.scene.control

# Class TableCell<S,T>

java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.control.Control
javafx.scene.control.Labeled
javafx.scene.control.Cell<T>
javafx.scene.control.IndexedCell<T>
javafx.scene.control.TableCell<S,T>

Type Parameters:
  `S` - The type of the TableView generic type (i.e. S == TableView<S>). This should also match with the first generic type in TableColumn.
  `T` - The type of the item contained within the Cell.

All Implemented Interfaces:
  `Styleable`, `EventTarget`, `Skinnable`

Direct Known Subclasses:
  `CheckBoxTableCell`, `ChoiceBoxTableCell`, `ComboBoxTableCell`, `ProgressBarTableCell`, `TextFieldTableCell`

public class TableCell<S,T> extends IndexedCell<T>
Represents a single row/column intersection in a `TableView`. To represent this intersection, a TableCell contains an `index` property, as well as a `tableColumn` property. In addition, a TableCell instance knows what `TableRow` it exists in.

A note about selection: A TableCell visually shows it is selected when two conditions are met:

1. The `TableSelectionModel.isSelected(int, TableColumnBase)` method returns true for the row / column that this cell represents, and
2. The `cell selection mode` property is set to true (to represent that it is allowable to select individual cells (and not just rows of cells)).

Since:
  JavaFX 2.0
See Also:
  - `TableView`
  - `TableColumn`
  - `Cell`
  - `IndexedCell`
  - `TableRow`

## Property Summary

Properties
Type
Property
Description
`final ReadOnlyObjectProperty<TableColumn<S,T>>`
`tableColumn`
The TableColumn instance that backs this TableCell.
`final ReadOnlyObjectProperty<TableRow<S>>`
`tableRow`
The TableRow that this TableCell currently finds itself placed within.
`final ReadOnlyObjectProperty<TableView<S>>`
`tableView`
The TableView associated with this TableCell.

### Properties inherited from class javafx.scene.control.IndexedCell

`index`

### Properties inherited from class javafx.scene.control.Cell

`editable, editing, empty, item, selected`

### Properties inherited from class javafx.scene.control.Labeled

`alignment, contentDisplay, ellipsisString, font, graphic, graphicTextGap, labelPadding, lineSpacing, mnemonicParsing, textAlignment, textFill, textOverrun, text, underline, wrapText`

### Properties inherited from class javafx.scene.control.Control

`contextMenu, skin, tooltip`

### Properties inherited from class javafx.scene.layout.Region

`background, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, width`

### Properties inherited from class javafx.scene.Parent

`needsLayout`

### Properties inherited from class javafx.scene.Node

`accessibleHelp, accessibleRoleDescription, accessibleRole, accessibleText, blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, depthTest, disabled, disable, effectiveNodeOrientation, effect, eventDispatcher, focused, focusTraversable, hover, id, inputMethodRequests, layoutBounds, layoutX, layoutY, localToParentTransform, localToSceneTransform, managed, mouseTransparent, nodeOrientation, onContextMenuRequested, onDragDetected, onDragDone, onDragDropped, onDragEntered, onDragExited, onDragOver, onInputMethodTextChanged, onKeyPressed, onKeyReleased, onKeyTyped, onMouseClicked, onMouseDragEntered, onMouseDragExited, onMouseDragged, onMouseDragOver, onMouseDragReleased, onMouseEntered, onMouseExited, onMouseMoved, onMousePressed, onMouseReleased, onRotate, onRotationFinished, onRotationStarted, onScrollFinished, onScroll, onScrollStarted, onSwipeDown, onSwipeLeft, onSwipeRight, onSwipeUp, onTouchMoved, onTouchPressed, onTouchReleased, onTouchStationary, onZoomFinished, onZoom, onZoomStarted, opacity, parent, pickOnBounds, pressed, rotate, rotationAxis, scaleX, scaleY, scaleZ, scene, style, translateX, translateY, translateZ, viewOrder, visible`

## Field Summary

### Fields inherited from class javafx.scene.layout.Region

`USE_COMPUTED_SIZE, USE_PREF_SIZE`

### Fields inherited from class javafx.scene.Node

`BASELINE_OFFSET_SAME_AS_HEIGHT`

## Constructor Summary

Constructors
Constructor
Description
`TableCell()`
Constructs a default TableCell instance with a style class of 'table-cell'

## Method Summary

Modifier and Type
Method
Description
`void`
`cancelEdit()`
Call this function to transition from an editing state into a non-editing state, without saving any user input.
`void`
`commitEdit(T newValue)`
Call this function when appropriate (based on the user interaction requirements of your cell editing user interface) to do two things: Fire the appropriate events back to the backing UI control (e.g.
`protected Skin<?>`
`createDefaultSkin()`
Create a new instance of the default skin for this control.
`void`
`executeAccessibleAction(AccessibleAction action, Object... parameters)`
This method is called by the assistive technology to request the action indicated by the argument should be executed.
`final TableColumn<S,T>`
`getTableColumn()`
Gets the value of the `tableColumn` property.
`final TableRow<S>`
`getTableRow()`
Gets the value of the `tableRow` property.
`final TableView<S>`
`getTableView()`
Gets the value of the `tableView` property.
`protected void`
`layoutChildren()`
Invoked during the layout pass to layout the children in this `Parent`.
`Object`
`queryAccessibleAttribute(AccessibleAttribute attribute, Object... parameters)`
This method is called by the assistive technology to request the value for an attribute.
`void`
`startEdit()`
Call this function to transition from a non-editing state into an editing state, if the cell is editable.
`final ReadOnlyObjectProperty<TableColumn<S,T>>`
`tableColumnProperty()`
The TableColumn instance that backs this TableCell.
`final ReadOnlyObjectProperty<TableRow<S>>`
`tableRowProperty()`
The TableRow that this TableCell currently finds itself placed within.
`final ReadOnlyObjectProperty<TableView<S>>`
`tableViewProperty()`
The TableView associated with this TableCell.
`void`
`updateSelected(boolean selected)`
Updates whether this cell is in a selected state or not.
`final void`
`updateTableColumn(TableColumn col)`
Updates the TableColumn associated with this TableCell.
`final void`
`updateTableRow(TableRow tableRow)`
Updates the TableRow associated with this TableCell.
`final void`
`updateTableView(TableView tv)`
Updates the TableView associated with this TableCell.

### Methods inherited from class javafx.scene.control.IndexedCell

`getIndex, indexProperty, updateIndex`

### Methods inherited from class javafx.scene.control.Cell

`editableProperty, editingProperty, emptyProperty, getInitialFocusTraversable, getItem, isEditable, isEditing, isEmpty, isItemChanged, isSelected, itemProperty, selectedProperty, setEditable, setItem, updateItem`

### Methods inherited from class javafx.scene.control.Labeled

`alignmentProperty, contentDisplayProperty, ellipsisStringProperty, fontProperty, getAlignment, getClassCssMetaData, getContentBias, getContentDisplay, getControlCssMetaData, getEllipsisString, getFont, getGraphic, getGraphicTextGap, getInitialAlignment, getLabelPadding, getLineSpacing, getText, getTextAlignment, getTextFill, getTextOverrun, graphicProperty, graphicTextGapProperty, isMnemonicParsing, isUnderline, isWrapText, labelPaddingProperty, lineSpacingProperty, mnemonicParsingProperty, setAlignment, setContentDisplay, setEllipsisString, setFont, setGraphic, setGraphicTextGap, setLineSpacing, setMnemonicParsing, setText, setTextAlignment, setTextFill, setTextOverrun, setUnderline, setWrapText, textAlignmentProperty, textFillProperty, textOverrunProperty, textProperty, toString, underlineProperty, wrapTextProperty`

### Methods inherited from class javafx.scene.control.Control

`computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, contextMenuProperty, getBaselineOffset, getContextMenu, getCssMetaData, getSkin, getTooltip, isResizable, setContextMenu, setSkin, setTooltip, skinProperty, tooltipProperty`

### Methods inherited from class javafx.scene.layout.Region

`backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getUserAgentStylesheet, getWidth, heightProperty, insetsProperty, isCacheShape, isCenterShape, isScaleShape, isSnapToPixel, layoutInArea, layoutInArea, layoutInArea, layoutInArea, maxHeight, maxHeightProperty, maxWidth, maxWidthProperty, minHeight, minHeightProperty, minWidth, minWidthProperty, opaqueInsetsProperty, paddingProperty, positionInArea, positionInArea, prefHeight, prefHeightProperty, prefWidth, prefWidthProperty, resize, scaleShapeProperty, setBackground, setBorder, setCacheShape, setCenterShape, setHeight, setMaxHeight, setMaxSize, setMaxWidth, setMinHeight, setMinSize, setMinWidth, setOpaqueInsets, setPadding, setPrefHeight, setPrefSize, setPrefWidth, setScaleShape, setShape, setSnapToPixel, setWidth, shapeProperty, snappedBottomInset, snappedLeftInset, snappedRightInset, snappedTopInset, snapPosition, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, snapToPixelProperty, widthProperty`

### Methods inherited from class javafx.scene.Parent

`getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, requestLayout, requestParentLayout, setNeedsLayout, updateBounds`

### Methods inherited from class javafx.scene.Node

`accessibleHelpProperty, accessibleRoleDescriptionProperty, accessibleRoleProperty, accessibleTextProperty, addEventFilter, addEventHandler, applyCss, autosize, blendModeProperty, boundsInLocalProperty, boundsInParentProperty, buildEventDispatchChain, cacheHintProperty, cacheProperty, clipProperty, computeAreaInScreen, contains, contains, cursorProperty, depthTestProperty, disabledProperty, disableProperty, effectiveNodeOrientationProperty, effectProperty, eventDispatcherProperty, fireEvent, focusedProperty, focusTraversableProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, getInputMethodRequests, getLayoutBounds, getLayoutX, getLayoutY, getLocalToParentTransform, getLocalToSceneTransform, getNodeOrientation, getOnContextMenuRequested, getOnDragDetected, getOnDragDone, getOnDragDropped, getOnDragEntered, getOnDragExited, getOnDragOver, getOnInputMethodTextChanged, getOnKeyPressed, getOnKeyReleased, getOnKeyTyped, getOnMouseClicked, getOnMouseDragEntered, getOnMouseDragExited, getOnMouseDragged, getOnMouseDragOver, getOnMouseDragReleased, getOnMouseEntered, getOnMouseExited, getOnMouseMoved, getOnMousePressed, getOnMouseReleased, getOnRotate, getOnRotationFinished, getOnRotationStarted, getOnScroll, getOnScrollFinished, getOnScrollStarted, getOnSwipeDown, getOnSwipeLeft, getOnSwipeRight, getOnSwipeUp, getOnTouchMoved, getOnTouchPressed, getOnTouchReleased, getOnTouchStationary, getOnZoom, getOnZoomFinished, getOnZoomStarted, getOpacity, getParent, getProperties, getPseudoClassStates, getRotate, getRotationAxis, getScaleX, getScaleY, getScaleZ, getScene, getStyle, getStyleableParent, getStyleClass, getTransforms, getTranslateX, getTranslateY, getTranslateZ, getTypeSelector, getUserData, getViewOrder, hasProperties, hoverProperty, idProperty, inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, isDisabled, isFocused, isFocusTraversable, isHover, isManaged, isMouseTransparent, isPickOnBounds, isPressed, isVisible, layoutBoundsProperty, layoutXProperty, layoutYProperty, localToParent, localToParent, localToParent, localToParent, localToParent, localToParentTransformProperty, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToSceneTransformProperty, localToScreen, localToScreen, localToScreen, localToScreen, localToScreen, lookupAll, managedProperty, mouseTransparentProperty, nodeOrientationProperty, notifyAccessibleAttributeChanged, onContextMenuRequestedProperty, onDragDetectedProperty, onDragDoneProperty, onDragDroppedProperty, onDragEnteredProperty, onDragExitedProperty, onDragOverProperty, onInputMethodTextChangedProperty, onKeyPressedProperty, onKeyReleasedProperty, onKeyTypedProperty, onMouseClickedProperty, onMouseDragEnteredProperty, onMouseDragExitedProperty, onMouseDraggedProperty, onMouseDragOverProperty, onMouseDragReleasedProperty, onMouseEnteredProperty, onMouseExitedProperty, onMouseMovedProperty, onMousePressedProperty, onMouseReleasedProperty, onRotateProperty, onRotationFinishedProperty, onRotationStartedProperty, onScrollFinishedProperty, onScrollProperty, onScrollStartedProperty, onSwipeDownProperty, onSwipeLeftProperty, onSwipeRightProperty, onSwipeUpProperty, onTouchMovedProperty, onTouchPressedProperty, onTouchReleasedProperty, onTouchStationaryProperty, onZoomFinishedProperty, onZoomProperty, onZoomStartedProperty, opacityProperty, parentProperty, parentToLocal, parentToLocal, parentToLocal, parentToLocal, parentToLocal, pickOnBoundsProperty, pressedProperty, pseudoClassStateChanged, relocate, removeEventFilter, removeEventHandler, requestFocus, resizeRelocate, rotateProperty, rotationAxisProperty, scaleXProperty, scaleYProperty, scaleZProperty, sceneProperty, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, screenToLocal, screenToLocal, screenToLocal, setAccessibleHelp, setAccessibleRole, setAccessibleRoleDescription, setAccessibleText, setBlendMode, setCache, setCacheHint, setClip, setCursor, setDepthTest, setDisable, setDisabled, setEffect, setEventDispatcher, setEventHandler, setFocused, setFocusTraversable, setHover, setId, setInputMethodRequests, setLayoutX, setLayoutY, setManaged, setMouseTransparent, setNodeOrientation, setOnContextMenuRequested, setOnDragDetected, setOnDragDone, setOnDragDropped, setOnDragEntered, setOnDragExited, setOnDragOver, setOnInputMethodTextChanged, setOnKeyPressed, setOnKeyReleased, setOnKeyTyped, setOnMouseClicked, setOnMouseDragEntered, setOnMouseDragExited, setOnMouseDragged, setOnMouseDragOver, setOnMouseDragReleased, setOnMouseEntered, setOnMouseExited, setOnMouseMoved, setOnMousePressed, setOnMouseReleased, setOnRotate, setOnRotationFinished, setOnRotationStarted, setOnScroll, setOnScrollFinished, setOnScrollStarted, setOnSwipeDown, setOnSwipeLeft, setOnSwipeRight, setOnSwipeUp, setOnTouchMoved, setOnTouchPressed, setOnTouchReleased, setOnTouchStationary, setOnZoom, setOnZoomFinished, setOnZoomStarted, setOpacity, setPickOnBounds, setPressed, setRotate, setRotationAxis, setScaleX, setScaleY, setScaleZ, setStyle, setTranslateX, setTranslateY, setTranslateZ, setUserData, setViewOrder, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, translateXProperty, translateYProperty, translateZProperty, usesMirroring, viewOrderProperty, visibleProperty`

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

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

### Methods inherited from interface javafx.css.Styleable

`getStyleableNode`

## Property Details

### tableColumn

public final ReadOnlyObjectProperty<TableColumn<S,T>> tableColumnProperty
The TableColumn instance that backs this TableCell.

See Also:
  - `tableColumnProperty()`

### tableView

public final ReadOnlyObjectProperty<TableView<S>> tableViewProperty
The TableView associated with this TableCell.

See Also:
  - `getTableView()`
  - `tableViewProperty()`

### tableRow

public final ReadOnlyObjectProperty<TableRow<S>> tableRowProperty
The TableRow that this TableCell currently finds itself placed within. The TableRow may be null early in the TableCell lifecycle, in the period between the TableCell being instantiated and being set into an owner TableRow.

See Also:
  - `getTableRow()`
  - `tableRowProperty()`

## Constructor Details

### TableCell

public TableCell()
Constructs a default TableCell instance with a style class of 'table-cell'

## Method Details

### tableColumnProperty

public final ReadOnlyObjectProperty<TableColumn<S,T>> tableColumnProperty()
The TableColumn instance that backs this TableCell.

Returns:
  the TableColumn instance that backs this TableCell

### getTableColumn

public final TableColumn<S,T> getTableColumn()
Gets the value of the `tableColumn` property.

Property description:
  * Properties * *
Returns:
  the value of the `tableColumn` property
See Also:
  - `tableColumnProperty()`

### getTableView

public final TableView<S> getTableView()
Gets the value of the `tableView` property.

Property description:
  The TableView associated with this TableCell.
Returns:
  the value of the `tableView` property
See Also:
  - `tableViewProperty()`

### tableViewProperty

public final ReadOnlyObjectProperty<TableView<S>> tableViewProperty()
The TableView associated with this TableCell.

Returns:
  the TableView associated with this TableCell
See Also:
  - `getTableView()`

### getTableRow

public final TableRow<S> getTableRow()
Gets the value of the `tableRow` property.

Property description:
  The TableRow that this TableCell currently finds itself placed within. The TableRow may be null early in the TableCell lifecycle, in the period between the TableCell being instantiated and being set into an owner TableRow.
Returns:
  the value of the `tableRow` property
See Also:
  - `tableRowProperty()`

### tableRowProperty

public final ReadOnlyObjectProperty<TableRow<S>> tableRowProperty()
The TableRow that this TableCell currently finds itself placed within. The TableRow may be null early in the TableCell lifecycle, in the period between the TableCell being instantiated and being set into an owner TableRow.

Returns:
  the `tableRow` property
See Also:
  - `getTableRow()`

### startEdit

public void startEdit()
Call this function to transition from a non-editing state into an editing state, if the cell is editable. If this cell is already in an editing state, it will stay in it.

Overrides:
  `startEdit` in class `Cell<T>`

### commitEdit

public void commitEdit(T newValue)
Call this function when appropriate (based on the user interaction requirements of your cell editing user interface) to do two things:

1. Fire the appropriate events back to the backing UI control (e.g. `ListView`). This will begin the process of pushing this edit back to the relevant data source / property (although it does not guarantee that this will be successful - that is dependent upon the specific edit commit handler being used). Refer to the UI control class javadoc for more detail.
2. Begin the transition from an editing state into a non-editing state.

In general there is no need to override this method in custom cell implementations - it should be sufficient to simply call this method when appropriate (e.g. when the user pressed the Enter key, you may do something like `cell.commitEdit(converter.fromString(textField.getText()));`

Overrides:
  `commitEdit` in class `Cell<T>`
Parameters:
  `newValue` - The value as input by the end user, which should be persisted in the relevant way given the data source underpinning the user interface and the install edit commit handler of the UI control.

### cancelEdit

public void cancelEdit()
Call this function to transition from an editing state into a non-editing state, without saving any user input.

Overrides:
  `cancelEdit` in class `Cell<T>`

### updateSelected

public void updateSelected(boolean selected)
Updates whether this cell is in a selected state or not.

Overrides:
  `updateSelected` in class `Cell<T>`
Parameters:
  `selected` - whether or not to select this cell.

### createDefaultSkin

protected Skin<?> createDefaultSkin()
Create a new instance of the default skin for this control. This is called to create a skin for the control if no skin is provided via CSS `-fx-skin` or set explicitly in a sub-class with `setSkin(...)`.

Overrides:
  `createDefaultSkin` in class `Control`
Returns:
  new instance of default skin for this control. If null then the control will have no skin unless one is provided by css.

### layoutChildren

protected void layoutChildren()
Description copied from class: `Cell`
Invoked during the layout pass to layout the children in this `Parent`. By default it will only set the size of managed, resizable content to their preferred sizes and does not do any node positioning.

Subclasses should override this function to layout content as needed.

Overrides:
  `layoutChildren` in class `Cell<T>`

### updateTableView

public final void updateTableView(TableView tv)
Updates the TableView associated with this TableCell. This is typically only done once when the TableCell is first added to the TableView. Note: This function is intended to be used by experts, primarily by those implementing new Skins. It is not common for developers or designers to access this function directly.

Parameters:
  `tv` - the TableView associated with this TableCell

### updateTableRow

public final void updateTableRow(TableRow tableRow)
Updates the TableRow associated with this TableCell. Note: This function is intended to be used by experts, primarily by those implementing new Skins. It is not common for developers or designers to access this function directly.

Parameters:
  `tableRow` - the TableRow associated with this TableCell

### updateTableColumn

public final void updateTableColumn(TableColumn col)
Updates the TableColumn associated with this TableCell. Note: This function is intended to be used by experts, primarily by those implementing new Skins. It is not common for developers or designers to access this function directly.

Parameters:
  `col` - the TableColumn associated with this TableCell

### queryAccessibleAttribute

public Object queryAccessibleAttribute(AccessibleAttribute attribute, Object... parameters)
This method is called by the assistive technology to request the value for an attribute.

This method is commonly overridden by subclasses to implement attributes that are required for a specific role.
If a particular attribute is not handled, the superclass implementation must be called.

Overrides:
  `queryAccessibleAttribute` in class `Control`
Parameters:
  `attribute` - the requested attribute
  `parameters` - optional list of parameters
Returns:
  the value for the requested attribute
See Also:
  - `AccessibleAttribute`

### executeAccessibleAction

public void executeAccessibleAction(AccessibleAction action, Object... parameters)
This method is called by the assistive technology to request the action indicated by the argument should be executed.

This method is commonly overridden by subclasses to implement action that are required for a specific role.
If a particular action is not handled, the superclass implementation must be called.

Overrides:
  `executeAccessibleAction` in class `Control`
Parameters:
  `action` - the action to execute
  `parameters` - optional list of parameters
See Also:
  - `AccessibleAction`