Module javafx.controls
Package javafx.scene.chart

# Class PieChart

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

All Implemented Interfaces:
  `Styleable`, `EventTarget`

public class PieChart extends Chart
Displays a PieChart. The chart content is populated by pie slices based on data set on the PieChart.

The clockwise property is set to true by default, which means slices are placed in the clockwise order. The labelsVisible property is used to either display pie slice labels or not.

Since:
  JavaFX 2.0

## Property Summary

Properties
Type
Property
Description
`final BooleanProperty`
`clockwise`
When true we start placing slices clockwise from the startAngle
`final ObjectProperty<ObservableList<PieChart.Data>>`
`data`
PieCharts data
`final DoubleProperty`
`labelLineLength`
The length of the line from the outside of the pie to the slice labels.
`final BooleanProperty`
`labelsVisible`
When true pie slice labels are drawn
`final DoubleProperty`
`startAngle`
The angle to start the first pie slice at

### 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 final class`
`PieChart.Data`
PieChart Data Item, represents one slice in the PieChart

## 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
`PieChart()`
Construct a new empty PieChart.
`PieChart(ObservableList<PieChart.Data> data)`
Construct a new PieChart with the given data

## Method Summary

Modifier and Type
Method
Description
`final BooleanProperty`
`clockwiseProperty()`
When true we start placing slices clockwise from the startAngle
`final ObjectProperty<ObservableList<PieChart.Data>>`
`dataProperty()`
PieCharts data
`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.
`final ObservableList<PieChart.Data>`
`getData()`
Gets the value of the `data` property.
`final double`
`getLabelLineLength()`
Gets the value of the `labelLineLength` property.
`final boolean`
`getLabelsVisible()`
Indicates whether pie slice labels are drawn or not
`final double`
`getStartAngle()`
Gets the value of the `startAngle` property.
`final boolean`
`isClockwise()`
Gets the value of the `clockwise` property.
`final DoubleProperty`
`labelLineLengthProperty()`
The length of the line from the outside of the pie to the slice labels.
`final BooleanProperty`
`labelsVisibleProperty()`
When true pie slice labels are drawn
`protected void`
`layoutChartChildren(double top, double left, double contentWidth, double contentHeight)`
Called to update and layout the chart children available from getChartChildren()
`final void`
`setClockwise(boolean value)`
Sets the value of the `clockwise` property.
`final void`
`setData(ObservableList<PieChart.Data> value)`
Sets the value of the `data` property.
`final void`
`setLabelLineLength(double value)`
Sets the value of the `labelLineLength` property.
`final void`
`setLabelsVisible(boolean value)`
Sets the value of the `labelsVisible` property.
`final void`
`setStartAngle(double value)`
Sets the value of the `startAngle` property.
`final DoubleProperty`
`startAngleProperty()`
The angle to start the first pie slice at

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

### data

public final ObjectProperty<ObservableList<PieChart.Data>> dataProperty
PieCharts data

See Also:
  - `getData()`
  - `setData(ObservableList)`
  - `dataProperty()`

### startAngle

public final DoubleProperty startAngleProperty
The angle to start the first pie slice at

See Also:
  - `getStartAngle()`
  - `setStartAngle(double)`
  - `startAngleProperty()`

### clockwise

public final BooleanProperty clockwiseProperty
When true we start placing slices clockwise from the startAngle

See Also:
  - `isClockwise()`
  - `setClockwise(boolean)`
  - `clockwiseProperty()`

### labelLineLength

public final DoubleProperty labelLineLengthProperty
The length of the line from the outside of the pie to the slice labels.

See Also:
  - `getLabelLineLength()`
  - `setLabelLineLength(double)`
  - `labelLineLengthProperty()`

### labelsVisible

public final BooleanProperty labelsVisibleProperty
When true pie slice labels are drawn

See Also:
  - `getLabelsVisible()`
  - `setLabelsVisible(boolean)`
  - `labelsVisibleProperty()`

## Constructor Details

### PieChart

public PieChart()
Construct a new empty PieChart.

### PieChart

public PieChart(ObservableList<PieChart.Data> data)
Construct a new PieChart with the given data

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

## Method Details

### getData

public final ObservableList<PieChart.Data> getData()
Gets the value of the `data` property.

Property description:
  PieCharts data
Returns:
  the value of the `data` property
See Also:
  - `setData(ObservableList)`
  - `dataProperty()`

### setData

public final void setData(ObservableList<PieChart.Data> value)
Sets the value of the `data` property.

Property description:
  PieCharts data
Parameters:
  `value` - the value for the `data` property
See Also:
  - `getData()`
  - `dataProperty()`

### dataProperty

public final ObjectProperty<ObservableList<PieChart.Data>> dataProperty()
PieCharts data

Returns:
  the `data` property
See Also:
  - `getData()`
  - `setData(ObservableList)`

### getStartAngle

public final double getStartAngle()
Gets the value of the `startAngle` property.

Property description:
  The angle to start the first pie slice at
Returns:
  the value of the `startAngle` property
See Also:
  - `setStartAngle(double)`
  - `startAngleProperty()`

### setStartAngle

public final void setStartAngle(double value)
Sets the value of the `startAngle` property.

Property description:
  The angle to start the first pie slice at
Parameters:
  `value` - the value for the `startAngle` property
See Also:
  - `getStartAngle()`
  - `startAngleProperty()`

### startAngleProperty

public final DoubleProperty startAngleProperty()
The angle to start the first pie slice at

Returns:
  the `startAngle` property
See Also:
  - `getStartAngle()`
  - `setStartAngle(double)`

### setClockwise

public final void setClockwise(boolean value)
Sets the value of the `clockwise` property.

Property description:
  When true we start placing slices clockwise from the startAngle
Parameters:
  `value` - the value for the `clockwise` property
See Also:
  - `isClockwise()`
  - `clockwiseProperty()`

### isClockwise

public final boolean isClockwise()
Gets the value of the `clockwise` property.

Property description:
  When true we start placing slices clockwise from the startAngle
Returns:
  the value of the `clockwise` property
See Also:
  - `setClockwise(boolean)`
  - `clockwiseProperty()`

### clockwiseProperty

public final BooleanProperty clockwiseProperty()
When true we start placing slices clockwise from the startAngle

Returns:
  the `clockwise` property
See Also:
  - `isClockwise()`
  - `setClockwise(boolean)`

### getLabelLineLength

public final double getLabelLineLength()
Gets the value of the `labelLineLength` property.

Property description:
  The length of the line from the outside of the pie to the slice labels.
Returns:
  the value of the `labelLineLength` property
See Also:
  - `setLabelLineLength(double)`
  - `labelLineLengthProperty()`

### setLabelLineLength

public final void setLabelLineLength(double value)
Sets the value of the `labelLineLength` property.

Property description:
  The length of the line from the outside of the pie to the slice labels.
Parameters:
  `value` - the value for the `labelLineLength` property
See Also:
  - `getLabelLineLength()`
  - `labelLineLengthProperty()`

### labelLineLengthProperty

public final DoubleProperty labelLineLengthProperty()
The length of the line from the outside of the pie to the slice labels.

Returns:
  the `labelLineLength` property
See Also:
  - `getLabelLineLength()`
  - `setLabelLineLength(double)`

### setLabelsVisible

public final void setLabelsVisible(boolean value)
Sets the value of the `labelsVisible` property.

Property description:
  When true pie slice labels are drawn
Parameters:
  `value` - the value for the `labelsVisible` property
See Also:
  - `getLabelsVisible()`
  - `labelsVisibleProperty()`

### getLabelsVisible

public final boolean getLabelsVisible()
Indicates whether pie slice labels are drawn or not

Returns:
  true if pie slice labels are visible and false otherwise.

### labelsVisibleProperty

public final BooleanProperty labelsVisibleProperty()
When true pie slice labels are drawn

Returns:
  the `labelsVisible` property
See Also:
  - `getLabelsVisible()`
  - `setLabelsVisible(boolean)`

### layoutChartChildren

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

Specified by:
  `layoutChartChildren` in class `Chart`
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
  `contentWidth` - The width of the area to layout the chart within
  `contentHeight` - The height of the area to layout the chart within

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