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
    --- | --- | ---
    `BooleanProperty` | `clockwise` | When true we start placing slices clockwise from the startAngle
    `ObjectProperty<ObservableList<PieChart.Data>>` | `data` | PieCharts data
    `DoubleProperty` | `labelLineLength` | The length of the line from the outside of the pie to the slice labels.
    `BooleanProperty` | `labelsVisible` | When true pie slice labels are drawn
    `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 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

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `BooleanProperty` | `clockwiseProperty()` | When true we start placing slices clockwise from the startAngle
    `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.
    `ObservableList<PieChart.Data>` | `getData()` | Gets the value of the property data.
    `double` | `getLabelLineLength()` | Gets the value of the property labelLineLength.
    `boolean` | `getLabelsVisible()` | Indicates whether pie slice labels are drawn or not
    `double` | `getStartAngle()` | Gets the value of the property startAngle.
    `boolean` | `isClockwise()` | Gets the value of the property clockwise.
    `DoubleProperty` | `labelLineLengthProperty()` | The length of the line from the outside of the pie to the slice labels.
    `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()
    `void` | `setClockwise​(boolean value)` | Sets the value of the property clockwise.
    `void` | `setData​(ObservableList<PieChart.Data> value)` | Sets the value of the property data.
    `void` | `setLabelLineLength​(double value)` | Sets the value of the property labelLineLength.
    `void` | `setLabelsVisible​(boolean value)` | Sets the value of the property labelsVisible.
    `void` | `setStartAngle​(double value)` | Sets the value of the property startAngle.
    `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 Detail

    - #### data

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

      PieCharts data
      See Also:
        `getData()`, `setData(ObservableList)`

    - #### startAngle

          public final DoubleProperty startAngleProperty

      The angle to start the first pie slice at
      See Also:
        `getStartAngle()`, `setStartAngle(double)`

    - #### clockwise

          public final BooleanProperty clockwiseProperty

      When true we start placing slices clockwise from the startAngle
      See Also:
        `isClockwise()`, `setClockwise(boolean)`

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

    - #### labelsVisible

          public final BooleanProperty labelsVisibleProperty

      When true pie slice labels are drawn
      See Also:
        `getLabelsVisible()`, `setLabelsVisible(boolean)`

  - ### Constructor Detail

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

    - #### getData

          public final ObservableList<PieChart.Data> getData()

      Gets the value of the property data.
      Property description:
        PieCharts data

    - #### setData

          public final void setData​(ObservableList<PieChart.Data> value)

      Sets the value of the property data.
      Property description:
        PieCharts data

    - #### dataProperty

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

      PieCharts data
      See Also:
        `getData()`, `setData(ObservableList)`

    - #### getStartAngle

          public final double getStartAngle()

      Gets the value of the property startAngle.
      Property description:
        The angle to start the first pie slice at

    - #### setStartAngle

          public final void setStartAngle​(double value)

      Sets the value of the property startAngle.
      Property description:
        The angle to start the first pie slice at

    - #### startAngleProperty

          public final DoubleProperty startAngleProperty()

      The angle to start the first pie slice at
      See Also:
        `getStartAngle()`, `setStartAngle(double)`

    - #### setClockwise

          public final void setClockwise​(boolean value)

      Sets the value of the property clockwise.
      Property description:
        When true we start placing slices clockwise from the startAngle

    - #### isClockwise

          public final boolean isClockwise()

      Gets the value of the property clockwise.
      Property description:
        When true we start placing slices clockwise from the startAngle

    - #### clockwiseProperty

          public final BooleanProperty clockwiseProperty()

      When true we start placing slices clockwise from the startAngle
      See Also:
        `isClockwise()`, `setClockwise(boolean)`

    - #### getLabelLineLength

          public final double getLabelLineLength()

      Gets the value of the property labelLineLength.
      Property description:
        The length of the line from the outside of the pie to the slice labels.

    - #### setLabelLineLength

          public final void setLabelLineLength​(double value)

      Sets the value of the property labelLineLength.
      Property description:
        The length of the line from the outside of the pie to the slice labels.

    - #### labelLineLengthProperty

          public final DoubleProperty labelLineLengthProperty()

      The length of the line from the outside of the pie to the slice labels.
      See Also:
        `getLabelLineLength()`, `setLabelLineLength(double)`

    - #### setLabelsVisible

          public final void setLabelsVisible​(boolean value)

      Sets the value of the property labelsVisible.
      Property description:
        When true pie slice labels are drawn

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