Module javafx.controls
Package javafx.scene.chart

# Class LineChart<X,Y>

java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.chart.Chart
javafx.scene.chart.XYChart<X,Y>
javafx.scene.chart.LineChart<X,Y>

All Implemented Interfaces:
  `Styleable`, `EventTarget`

public class LineChart<X,Y> extends XYChart<X,Y>
Line Chart plots a line connecting the data points in a series. The data points themselves can be represented by symbols optionally. Line charts are usually used to view data trends over time or category.

Since:
  JavaFX 2.0

## Property Summary

Properties
Type
Property
Description
`final ObjectProperty<LineChart.SortingPolicy>`
`axisSortingPolicy`
Indicates whether the data passed to LineChart should be sorted by natural order of one of the axes.
`final BooleanProperty`
`createSymbols`
When true, CSS styleable symbols are created for any data items that don't have a symbol node specified.

### Properties inherited from class javafx.scene.chart.XYChart

`alternativeColumnFillVisible, alternativeRowFillVisible, data, horizontalGridLinesVisible, horizontalZeroLineVisible, verticalGridLinesVisible, verticalZeroLineVisible`

### Properties inherited from class javafx.scene.chart.Chart

`animated, legend, legendSide, legendVisible, title, titleSide`

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

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static enum`
`LineChart.SortingPolicy`
This enum defines a policy for `axisSortingPolicyProperty()`.

## Nested classes/interfaces inherited from class javafx.scene.chart.XYChart

`XYChart.Data<X,Y>, XYChart.Series<X,Y>`

## 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
`LineChart(Axis<X> xAxis, Axis<Y> yAxis)`
Construct a new LineChart with the given axis.
`LineChart(Axis<X> xAxis, Axis<Y> yAxis, ObservableList<XYChart.Series<X,Y>> data)`
Construct a new LineChart with the given axis and data.

## Method Summary

Modifier and Type
Method
Description
`final ObjectProperty<LineChart.SortingPolicy>`
`axisSortingPolicyProperty()`
Indicates whether the data passed to LineChart should be sorted by natural order of one of the axes.
`final BooleanProperty`
`createSymbolsProperty()`
When true, CSS styleable symbols are created for any data items that don't have a symbol node specified.
`protected void`
`dataItemAdded(XYChart.Series<X,Y> series, int itemIndex, XYChart.Data<X,Y> item)`
Called when a data item has been added to a series.
`protected void`
`dataItemChanged(XYChart.Data<X,Y> item)`
Called when a data item has changed, ie its xValue, yValue or extraValue has changed.
`protected void`
`dataItemRemoved(XYChart.Data<X,Y> item, XYChart.Series<X,Y> series)`
Called when a data item has been removed from data model but it is still visible on the chart.
`final LineChart.SortingPolicy`
`getAxisSortingPolicy()`
Gets the value of the `axisSortingPolicy` property.
`static List<CssMetaData<? extends Styleable,?>>`
`getClassCssMetaData()`
`final boolean`
`getCreateSymbols()`
Indicates whether symbols for data points will be created or not.
`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 void`
`layoutPlotChildren()`
Called to update and layout the plot children.
`protected void`
`seriesAdded(XYChart.Series<X,Y> series, int seriesIndex)`
A series has been added to the charts data model.
`protected void`
`seriesChanged(ListChangeListener.Change<? extends XYChart.Series> c)`
Called when each atomic change is made to the list of series for this chart
`protected void`
`seriesRemoved(XYChart.Series<X,Y> series)`
A series has been removed from the data model but it is still visible on the chart.
`final void`
`setAxisSortingPolicy(LineChart.SortingPolicy value)`
Sets the value of the `axisSortingPolicy` property.
`final void`
`setCreateSymbols(boolean value)`
Sets the value of the `createSymbols` property.
`protected void`
`updateAxisRange()`
This is called when the range has been invalidated and we need to update it.

### Methods inherited from class javafx.scene.chart.XYChart

`alternativeColumnFillVisibleProperty, alternativeRowFillVisibleProperty, currentDisplayedExtraValueProperty, currentDisplayedXValueProperty, currentDisplayedYValueProperty, dataProperty, getCurrentDisplayedExtraValue, getCurrentDisplayedXValue, getCurrentDisplayedYValue, getData, getDisplayedDataIterator, getDisplayedSeriesIterator, getPlotChildren, getVerticalGridLinesVisible, getXAxis, getYAxis, horizontalGridLinesVisibleProperty, horizontalZeroLineVisibleProperty, isAlternativeColumnFillVisible, isAlternativeRowFillVisible, isHorizontalGridLinesVisible, isHorizontalZeroLineVisible, isVerticalZeroLineVisible, layoutChartChildren, removeDataItemFromDisplay, removeSeriesFromDisplay, setAlternativeColumnFillVisible, setAlternativeRowFillVisible, setCurrentDisplayedExtraValue, setCurrentDisplayedXValue, setCurrentDisplayedYValue, setData, setHorizontalGridLinesVisible, setHorizontalZeroLineVisible, setVerticalGridLinesVisible, setVerticalZeroLineVisible, updateLegend, verticalGridLinesVisibleProperty, verticalZeroLineVisibleProperty`

### Methods inherited from class javafx.scene.chart.Chart

`animate, animatedProperty, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, getAnimated, getChartChildren, getLegend, getLegendSide, getTitle, getTitleSide, isLegendVisible, layoutChildren, legendProperty, legendSideProperty, legendVisibleProperty, requestChartLayout, setAnimated, setLegend, setLegendSide, setLegendVisible, setTitle, setTitleSide, shouldAnimate, titleProperty, titleSideProperty`

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

### createSymbols

public final BooleanProperty createSymbolsProperty
When true, CSS styleable symbols are created for any data items that don't have a symbol node specified.

See Also:
  - `getCreateSymbols()`
  - `setCreateSymbols(boolean)`
  - `createSymbolsProperty()`

### axisSortingPolicy

public final ObjectProperty<LineChart.SortingPolicy> axisSortingPolicyProperty
Indicates whether the data passed to LineChart should be sorted by natural order of one of the axes. If this is set to `LineChart.SortingPolicy.NONE`, the order in `XYChart.dataProperty()` will be used.

Default value:
  SortingPolicy#X_AXIS
Since:
  JavaFX 8u40
See Also:
  - `getAxisSortingPolicy()`
  - `setAxisSortingPolicy(LineChart.SortingPolicy)`
  - `axisSortingPolicyProperty()`

## Constructor Details

### LineChart

public LineChart(Axis<X> xAxis, Axis<Y> yAxis)
Construct a new LineChart with the given axis.

Parameters:
  `xAxis` - The x axis to use
  `yAxis` - The y axis to use

### LineChart

public LineChart(Axis<X> xAxis, Axis<Y> yAxis, ObservableList<XYChart.Series<X,Y>> data)
Construct a new LineChart with the given axis and data.

Parameters:
  `xAxis` - The x axis to use
  `yAxis` - The y axis to use
  `data` - The data to use, this is the actual list used so any changes to it will be reflected in the chart

## Method Details

### getCreateSymbols

public final boolean getCreateSymbols()
Indicates whether symbols for data points will be created or not.

Returns:
  true if symbols for data points will be created and false otherwise.

### setCreateSymbols

public final void setCreateSymbols(boolean value)
Sets the value of the `createSymbols` property.

Property description:
  When true, CSS styleable symbols are created for any data items that don't have a symbol node specified.
Parameters:
  `value` - the value for the `createSymbols` property
See Also:
  - `getCreateSymbols()`
  - `createSymbolsProperty()`

### createSymbolsProperty

public final BooleanProperty createSymbolsProperty()
When true, CSS styleable symbols are created for any data items that don't have a symbol node specified.

Returns:
  the `createSymbols` property
See Also:
  - `getCreateSymbols()`
  - `setCreateSymbols(boolean)`

### getAxisSortingPolicy

public final LineChart.SortingPolicy getAxisSortingPolicy()
Gets the value of the `axisSortingPolicy` property.

Property description:
  Indicates whether the data passed to LineChart should be sorted by natural order of one of the axes. If this is set to `LineChart.SortingPolicy.NONE`, the order in `XYChart.dataProperty()` will be used.
Default value:
  SortingPolicy#X_AXIS
Returns:
  the value of the `axisSortingPolicy` property
Since:
  JavaFX 8u40
See Also:
  - `setAxisSortingPolicy(LineChart.SortingPolicy)`
  - `axisSortingPolicyProperty()`

### setAxisSortingPolicy

public final void setAxisSortingPolicy(LineChart.SortingPolicy value)
Sets the value of the `axisSortingPolicy` property.

Property description:
  Indicates whether the data passed to LineChart should be sorted by natural order of one of the axes. If this is set to `LineChart.SortingPolicy.NONE`, the order in `XYChart.dataProperty()` will be used.
Default value:
  SortingPolicy#X_AXIS
Parameters:
  `value` - the value for the `axisSortingPolicy` property
Since:
  JavaFX 8u40
See Also:
  - `getAxisSortingPolicy()`
  - `axisSortingPolicyProperty()`

### axisSortingPolicyProperty

public final ObjectProperty<LineChart.SortingPolicy> axisSortingPolicyProperty()
Indicates whether the data passed to LineChart should be sorted by natural order of one of the axes. If this is set to `LineChart.SortingPolicy.NONE`, the order in `XYChart.dataProperty()` will be used.

Default value:
  SortingPolicy#X_AXIS
Returns:
  the `axisSortingPolicy` property
Since:
  JavaFX 8u40
See Also:
  - `getAxisSortingPolicy()`
  - `setAxisSortingPolicy(LineChart.SortingPolicy)`

### updateAxisRange

protected void updateAxisRange()
This is called when the range has been invalidated and we need to update it. If the axis are auto ranging then we compile a list of all data that the given axis has to plot and call invalidateRange() on the axis passing it that data.

Overrides:
  `updateAxisRange` in class `XYChart<X,Y>`

### dataItemAdded

protected void dataItemAdded(XYChart.Series<X,Y> series, int itemIndex, XYChart.Data<X,Y> item)
Description copied from class: `XYChart`
Called when a data item has been added to a series. This is where implementations of XYChart can create/add new nodes to getPlotChildren to represent this data item. They also may animate that data add with a fade in or similar if animated = true.

Specified by:
  `dataItemAdded` in class `XYChart<X,Y>`
Parameters:
  `series` - The series the data item was added to
  `itemIndex` - The index of the new item within the series
  `item` - The new data item that was added

### dataItemRemoved

protected void dataItemRemoved(XYChart.Data<X,Y> item, XYChart.Series<X,Y> series)
Description copied from class: `XYChart`
Called when a data item has been removed from data model but it is still visible on the chart. Its still visible so that you can handle animation for removing it in this method. After you are done animating the data item you must call removeDataItemFromDisplay() to remove the items node from being displayed on the chart.

Specified by:
  `dataItemRemoved` in class `XYChart<X,Y>`
Parameters:
  `item` - The item that has been removed from the series
  `series` - The series the item was removed from

### dataItemChanged

protected void dataItemChanged(XYChart.Data<X,Y> item)
Called when a data item has changed, ie its xValue, yValue or extraValue has changed.

Specified by:
  `dataItemChanged` in class `XYChart<X,Y>`
Parameters:
  `item` - The data item who was changed

### seriesChanged

protected void seriesChanged(ListChangeListener.Change<? extends XYChart.Series> c)
Description copied from class: `XYChart`
Called when each atomic change is made to the list of series for this chart

Overrides:
  `seriesChanged` in class `XYChart<X,Y>`
Parameters:
  `c` - a Change instance representing the changes to the series

### seriesAdded

protected void seriesAdded(XYChart.Series<X,Y> series, int seriesIndex)
Description copied from class: `XYChart`
A series has been added to the charts data model. This is where implementations of XYChart can create/add new nodes to getPlotChildren to represent this series. Also you have to handle adding any data items that are already in the series. You may simply call dataItemAdded() for each one or provide some different animation for a whole series being added.

Specified by:
  `seriesAdded` in class `XYChart<X,Y>`
Parameters:
  `series` - The series that has been added
  `seriesIndex` - The index of the new series

### seriesRemoved

protected void seriesRemoved(XYChart.Series<X,Y> series)
Description copied from class: `XYChart`
A series has been removed from the data model but it is still visible on the chart. Its still visible so that you can handle animation for removing it in this method. After you are done animating the data item you must call removeSeriesFromDisplay() to remove the series from the display list.

Specified by:
  `seriesRemoved` in class `XYChart<X,Y>`
Parameters:
  `series` - The series that has been removed

### layoutPlotChildren

protected void layoutPlotChildren()
Called to update and layout the plot children. This should include all work to updates nodes representing the plot on top of the axis and grid lines etc. The origin is the top left of the plot area, the plot area with can be got by getting the width of the x axis and its height from the height of the y axis.

Specified by:
  `layoutPlotChildren` in class `XYChart<X,Y>`

### 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 `XYChart<X,Y>`
Returns:
  The CssMetaData associated with this node, which may include the CssMetaData of its superclasses.
Since:
  JavaFX 8.0