Module javafx.controls
Package javafx.scene.chart

# Class Chart

java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.chart.Chart

All Implemented Interfaces:
  `Styleable`, `EventTarget`

Direct Known Subclasses:
  `PieChart`, `XYChart`

public abstract class Chart extends Region
Base class for all charts. It has 3 parts the title, legend and chartContent. The chart content is populated by the specific subclass of Chart.

Since:
  JavaFX 2.0

## Property Summary

Properties
Type
Property
Description
`final BooleanProperty`
`animated`
When true any data changes will be animated.
`protected final ObjectProperty<Node>`
`legend`
The node to display as the Legend.
`final ObjectProperty<Side>`
`legendSide`
The side of the chart where the legend should be displayed
`final BooleanProperty`
`legendVisible`
When true the chart will display a legend if the chart implementation supports a legend.
`final StringProperty`
`title`
The chart title
`final ObjectProperty<Side>`
`titleSide`
The side of the chart where the title is displayed

### 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
`Chart()`
Creates a new default Chart instance.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`animate(Animation animation)`
Play the given animation on every frame of the animation the chart will be relayed out until the animation finishes.
`final BooleanProperty`
`animatedProperty()`
When true any data changes will be animated.
`protected double`
`computeMinHeight(double width)`
Charts are sized outside in, user tells chart how much space it has and chart draws inside that.
`protected double`
`computeMinWidth(double height)`
Charts are sized outside in, user tells chart how much space it has and chart draws inside that.
`protected double`
`computePrefHeight(double width)`
Charts are sized outside in, user tells chart how much space it has and chart draws inside that.
`protected double`
`computePrefWidth(double height)`
Charts are sized outside in, user tells chart how much space it has and chart draws inside that.
`final boolean`
`getAnimated()`
Indicates whether data changes will be animated or not.
`protected ObservableList<Node>`
`getChartChildren()`
Modifiable and observable list of all content in the chart.
`static List<CssMetaData<? extends Styleable,?>>`
`getClassCssMetaData()`
`List<CssMetaData<? extends Styleable,?>>`
`getCssMetaData()`
This method should delegate to `Node.getClassCssMetaData()` so that a Node's CssMetaData can be accessed without the need for reflection.
`protected final Node`
`getLegend()`
Gets the value of the `legend` property.
`final Side`
`getLegendSide()`
Gets the value of the `legendSide` property.
`final String`
`getTitle()`
Gets the value of the `title` property.
`final Side`
`getTitleSide()`
Gets the value of the `titleSide` property.
`final boolean`
`isLegendVisible()`
Gets the value of the `legendVisible` property.
`protected abstract void`
`layoutChartChildren(double top, double left, double width, double height)`
Called to update and layout the chart children available from getChartChildren()
`protected void`
`layoutChildren()`
Invoked during the layout pass to layout this chart and all its content.
`protected final ObjectProperty<Node>`
`legendProperty()`
The node to display as the Legend.
`final ObjectProperty<Side>`
`legendSideProperty()`
The side of the chart where the legend should be displayed
`final BooleanProperty`
`legendVisibleProperty()`
When true the chart will display a legend if the chart implementation supports a legend.
`protected void`
`requestChartLayout()`
Call this when you know something has changed that needs the chart to be relayed out.
`final void`
`setAnimated(boolean value)`
Sets the value of the `animated` property.
`protected final void`
`setLegend(Node value)`
Sets the value of the `legend` property.
`final void`
`setLegendSide(Side value)`
Sets the value of the `legendSide` property.
`final void`
`setLegendVisible(boolean value)`
Sets the value of the `legendVisible` property.
`final void`
`setTitle(String value)`
Sets the value of the `title` property.
`final void`
`setTitleSide(Side value)`
Sets the value of the `titleSide` property.
`protected final boolean`
`shouldAnimate()`
This is used to check if any given animation should run.
`final StringProperty`
`titleProperty()`
The chart title
`final ObjectProperty<Side>`
`titleSideProperty()`
The side of the chart where the title is displayed

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

`backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, computeMaxHeight, computeMaxWidth, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getUserAgentStylesheet, getWidth, heightProperty, insetsProperty, isCacheShape, isCenterShape, isResizable, 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

`getBaselineOffset, getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, queryAccessibleAttribute, 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, executeAccessibleAction, fireEvent, focusedProperty, focusTraversableProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getContentBias, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, getInitialFocusTraversable, 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, toString, 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

### title

public final StringProperty titleProperty
The chart title

See Also:
  - `getTitle()`
  - `setTitle(String)`
  - `titleProperty()`

### titleSide

public final ObjectProperty<Side> titleSideProperty
The side of the chart where the title is displayed

Default value:
  Side.TOP
See Also:
  - `getTitleSide()`
  - `setTitleSide(Side)`
  - `titleSideProperty()`

### legend

protected final ObjectProperty<Node> legendProperty
The node to display as the Legend. Subclasses can set a node here to be displayed on a side as the legend. If no legend is wanted then this can be set to null

See Also:
  - `getLegend()`
  - `setLegend(Node)`
  - `legendProperty()`

### legendVisible

public final BooleanProperty legendVisibleProperty
When true the chart will display a legend if the chart implementation supports a legend.

See Also:
  - `isLegendVisible()`
  - `setLegendVisible(boolean)`
  - `legendVisibleProperty()`

### legendSide

public final ObjectProperty<Side> legendSideProperty
The side of the chart where the legend should be displayed

Default value:
  Side.BOTTOM
See Also:
  - `getLegendSide()`
  - `setLegendSide(Side)`
  - `legendSideProperty()`

### animated

public final BooleanProperty animatedProperty
When true any data changes will be animated.

See Also:
  - `getAnimated()`
  - `setAnimated(boolean)`
  - `animatedProperty()`

## Constructor Details

### Chart

public Chart()
Creates a new default Chart instance.

## Method Details

### getTitle

public final String getTitle()
Gets the value of the `title` property.

Property description:
  The chart title
Returns:
  the value of the `title` property
See Also:
  - `setTitle(String)`
  - `titleProperty()`

### setTitle

public final void setTitle(String value)
Sets the value of the `title` property.

Property description:
  The chart title
Parameters:
  `value` - the value for the `title` property
See Also:
  - `getTitle()`
  - `titleProperty()`

### titleProperty

public final StringProperty titleProperty()
The chart title

Returns:
  the `title` property
See Also:
  - `getTitle()`
  - `setTitle(String)`

### getTitleSide

public final Side getTitleSide()
Gets the value of the `titleSide` property.

Property description:
  The side of the chart where the title is displayed
Default value:
  Side.TOP
Returns:
  the value of the `titleSide` property
See Also:
  - `setTitleSide(Side)`
  - `titleSideProperty()`

### setTitleSide

public final void setTitleSide(Side value)
Sets the value of the `titleSide` property.

Property description:
  The side of the chart where the title is displayed
Default value:
  Side.TOP
Parameters:
  `value` - the value for the `titleSide` property
See Also:
  - `getTitleSide()`
  - `titleSideProperty()`

### titleSideProperty

public final ObjectProperty<Side> titleSideProperty()
The side of the chart where the title is displayed

Default value:
  Side.TOP
Returns:
  the `titleSide` property
See Also:
  - `getTitleSide()`
  - `setTitleSide(Side)`

### getLegend

protected final Node getLegend()
Gets the value of the `legend` property.

Property description:
  The node to display as the Legend. Subclasses can set a node here to be displayed on a side as the legend. If no legend is wanted then this can be set to null
Returns:
  the value of the `legend` property
See Also:
  - `setLegend(Node)`
  - `legendProperty()`

### setLegend

protected final void setLegend(Node value)
Sets the value of the `legend` property.

Property description:
  The node to display as the Legend. Subclasses can set a node here to be displayed on a side as the legend. If no legend is wanted then this can be set to null
Parameters:
  `value` - the value for the `legend` property
See Also:
  - `getLegend()`
  - `legendProperty()`

### legendProperty

protected final ObjectProperty<Node> legendProperty()
The node to display as the Legend. Subclasses can set a node here to be displayed on a side as the legend. If no legend is wanted then this can be set to null

Returns:
  the `legend` property
See Also:
  - `getLegend()`
  - `setLegend(Node)`

### isLegendVisible

public final boolean isLegendVisible()
Gets the value of the `legendVisible` property.

Property description:
  When true the chart will display a legend if the chart implementation supports a legend.
Returns:
  the value of the `legendVisible` property
See Also:
  - `setLegendVisible(boolean)`
  - `legendVisibleProperty()`

### setLegendVisible

public final void setLegendVisible(boolean value)
Sets the value of the `legendVisible` property.

Property description:
  When true the chart will display a legend if the chart implementation supports a legend.
Parameters:
  `value` - the value for the `legendVisible` property
See Also:
  - `isLegendVisible()`
  - `legendVisibleProperty()`

### legendVisibleProperty

public final BooleanProperty legendVisibleProperty()
When true the chart will display a legend if the chart implementation supports a legend.

Returns:
  the `legendVisible` property
See Also:
  - `isLegendVisible()`
  - `setLegendVisible(boolean)`

### getLegendSide

public final Side getLegendSide()
Gets the value of the `legendSide` property.

Property description:
  The side of the chart where the legend should be displayed
Default value:
  Side.BOTTOM
Returns:
  the value of the `legendSide` property
See Also:
  - `setLegendSide(Side)`
  - `legendSideProperty()`

### setLegendSide

public final void setLegendSide(Side value)
Sets the value of the `legendSide` property.

Property description:
  The side of the chart where the legend should be displayed
Default value:
  Side.BOTTOM
Parameters:
  `value` - the value for the `legendSide` property
See Also:
  - `getLegendSide()`
  - `legendSideProperty()`

### legendSideProperty

public final ObjectProperty<Side> legendSideProperty()
The side of the chart where the legend should be displayed

Default value:
  Side.BOTTOM
Returns:
  the `legendSide` property
See Also:
  - `getLegendSide()`
  - `setLegendSide(Side)`

### getAnimated

public final boolean getAnimated()
Indicates whether data changes will be animated or not.

Returns:
  true if data changes will be animated and false otherwise.

### setAnimated

public final void setAnimated(boolean value)
Sets the value of the `animated` property.

Property description:
  When true any data changes will be animated.
Parameters:
  `value` - the value for the `animated` property
See Also:
  - `getAnimated()`
  - `animatedProperty()`

### animatedProperty

public final BooleanProperty animatedProperty()
When true any data changes will be animated.

Returns:
  the `animated` property
See Also:
  - `getAnimated()`
  - `setAnimated(boolean)`

### getChartChildren

protected ObservableList<Node> getChartChildren()
Modifiable and observable list of all content in the chart. This is where implementations of Chart should add any nodes they use to draw their chart. This excludes the legend and title which are looked after by this class.

Returns:
  Observable list of plot children

### animate

protected void animate(Animation animation)
Play the given animation on every frame of the animation the chart will be relayed out until the animation finishes. So to add a animation to a chart, create a animation on data model, during layoutChartContent() map data model to nodes then call this method with the animation.

Parameters:
  `animation` - The animation to play

### requestChartLayout

protected void requestChartLayout()
Call this when you know something has changed that needs the chart to be relayed out.

### shouldAnimate

protected final boolean shouldAnimate()
This is used to check if any given animation should run. It returns true if animation is enabled and the node is visible and in a scene.

Returns:
  true if animation is enabled and the node is visible and in a scene

### layoutChartChildren

protected abstract void layoutChartChildren(double top, double left, double width, double height)
Called to update and layout the chart children available from getChartChildren()

Parameters:
  `top` - The top offset from the origin to account for any padding on the chart content
  `left` - The left offset from the origin to account for any padding on the chart content
  `width` - The width of the area to layout the chart within
  `height` - The height of the area to layout the chart within

### layoutChildren

protected void layoutChildren()
Invoked during the layout pass to layout this chart and all its content.

Overrides:
  `layoutChildren` in class `Parent`

### computeMinHeight

protected double computeMinHeight(double width)
Charts are sized outside in, user tells chart how much space it has and chart draws inside that. So minimum height is a constant 150.

Overrides:
  `computeMinHeight` in class `Region`
Parameters:
  `width` - the width that should be used if min height depends on it
Returns:
  the computed minimum height for this region

### computeMinWidth

protected double computeMinWidth(double height)
Charts are sized outside in, user tells chart how much space it has and chart draws inside that. So minimum width is a constant 200.

Overrides:
  `computeMinWidth` in class `Region`
Parameters:
  `height` - the height that should be used if min width depends on it
Returns:
  the computed minimum width of this region

### computePrefWidth

protected double computePrefWidth(double height)
Charts are sized outside in, user tells chart how much space it has and chart draws inside that. So preferred width is a constant 500.

Overrides:
  `computePrefWidth` in class `Region`
Parameters:
  `height` - the height that should be used if preferred width depends on it
Returns:
  the computed preferred width for this region

### computePrefHeight

protected double computePrefHeight(double width)
Charts are sized outside in, user tells chart how much space it has and chart draws inside that. So preferred height is a constant 400.

Overrides:
  `computePrefHeight` in class `Region`
Parameters:
  `width` - the width that should be used if preferred height depends on it
Returns:
  the computed preferred height for this region

### getClassCssMetaData

public static List<CssMetaData<? extends Styleable,?>> getClassCssMetaData()

Returns:
  The CssMetaData associated with this class, which may include the CssMetaData of its superclasses.
Since:
  JavaFX 8.0

### getCssMetaData

public List<CssMetaData<? extends Styleable,?>> getCssMetaData()
This method should delegate to `Node.getClassCssMetaData()` so that a Node's CssMetaData can be accessed without the need for reflection.

Specified by:
  `getCssMetaData` in interface `Styleable`
Overrides:
  `getCssMetaData` in class `Region`
Returns:
  The CssMetaData associated with this node, which may include the CssMetaData of its superclasses.
Since:
  JavaFX 8.0