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

  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 Details

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