# 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

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static final class`
  `PieChart.Data`
  PieChart Data Item, represents one slice in the PieChart

- ## 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 declared in class javafx.scene.chart.Chart

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

  ### Properties declared in class javafx.scene.layout.Region

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

  ### Properties declared in class javafx.scene.Parent

  `needsLayout`

  ### Properties declared in class javafx.scene.Node

  `accessibleHelp, accessibleRoleDescription, accessibleRole, accessibleText, blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, depthTest, disabled, disable, effectiveNodeOrientation, effect, eventDispatcher, focused, focusTraversable, focusVisible, focusWithin, 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 declared in class javafx.scene.layout.Region

  `USE_COMPUTED_SIZE, USE_PREF_SIZE`

  ### Fields declared in 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()`
  Gets the `CssMetaData` associated with this class, which may include the `CssMetaData` of its superclasses.
  `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 declared in 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 declared in 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 declared in class javafx.scene.Parent

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

  ### Methods declared in 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, focusVisibleProperty, focusWithinProperty, 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, isFocusVisible, isFocusWithin, 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, lookup, 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, queryAccessibleAttribute, relocate, removeEventFilter, removeEventHandler, requestFocus, requestFocusTraversal, 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 declared in class java.lang.Object

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

  ### Methods declared in 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()
    Gets the `CssMetaData` associated with this class, which may include the `CssMetaData` of its superclasses.
    Returns:
      the `CssMetaData`
    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