- java.lang.Object
-
- javafx.scene.Node
-
- javafx.scene.Parent
-
- javafx.scene.layout.Region
-
- javafx.scene.chart.Chart
-
- All Implemented Interfaces:
Styleable
,EventTarget
public abstract class Chart extends Region
Base class for all charts. It has 3 parts the title, legend and chartContent. The chart content is populated by the specific subclass of Chart.- Since:
- JavaFX 2.0
-
-
Property Summary
Properties Type Property Description BooleanProperty
animated
When true any data changes will be animated.protected ObjectProperty<Node>
legend
The node to display as the Legend.ObjectProperty<Side>
legendSide
The side of the chart where the legend should be displayedBooleanProperty
legendVisible
When true the chart will display a legend if the chart implementation supports a legend.StringProperty
title
The chart titleObjectProperty<Side>
titleSide
The side of the chart where the title is displayed-
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
-
Properties inherited from class javafx.scene.Parent
needsLayout
-
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
-
-
Field Summary
-
Fields inherited from class javafx.scene.Node
BASELINE_OFFSET_SAME_AS_HEIGHT
-
Fields inherited from class javafx.scene.layout.Region
USE_COMPUTED_SIZE, USE_PREF_SIZE
-
-
Constructor Summary
Constructors Constructor Description Chart()
Creates a new default Chart instance.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
animate(Animation animation)
Play the given animation on every frame of the animation the chart will be relayed out until the animation finishes.BooleanProperty
animatedProperty()
When true any data changes will be animated.protected double
computeMinHeight(double width)
Charts are sized outside in, user tells chart how much space it has and chart draws inside that.protected double
computeMinWidth(double height)
Charts are sized outside in, user tells chart how much space it has and chart draws inside that.protected double
computePrefHeight(double width)
Charts are sized outside in, user tells chart how much space it has and chart draws inside that.protected double
computePrefWidth(double height)
Charts are sized outside in, user tells chart how much space it has and chart draws inside that.boolean
getAnimated()
Indicates whether data changes will be animated or not.protected ObservableList<Node>
getChartChildren()
Modifiable and observable list of all content in the chart.static List<CssMetaData<? extends Styleable,?>>
getClassCssMetaData()
List<CssMetaData<? extends Styleable,?>>
getCssMetaData()
This method should delegate toNode.getClassCssMetaData()
so that a Node's CssMetaData can be accessed without the need for reflection.protected Node
getLegend()
Gets the value of the property legend.Side
getLegendSide()
Gets the value of the property legendSide.String
getTitle()
Gets the value of the property title.Side
getTitleSide()
Gets the value of the property titleSide.boolean
isLegendVisible()
Gets the value of the property legendVisible.protected abstract void
layoutChartChildren(double top, double left, double width, double height)
Called to update and layout the chart children available from getChartChildren()protected void
layoutChildren()
Invoked during the layout pass to layout this chart and all its content.protected ObjectProperty<Node>
legendProperty()
The node to display as the Legend.ObjectProperty<Side>
legendSideProperty()
The side of the chart where the legend should be displayedBooleanProperty
legendVisibleProperty()
When true the chart will display a legend if the chart implementation supports a legend.protected void
requestChartLayout()
Call this when you know something has changed that needs the chart to be relayed out.void
setAnimated(boolean value)
Sets the value of the property animated.protected void
setLegend(Node value)
Sets the value of the property legend.void
setLegendSide(Side value)
Sets the value of the property legendSide.void
setLegendVisible(boolean value)
Sets the value of the property legendVisible.void
setTitle(String value)
Sets the value of the property title.void
setTitleSide(Side value)
Sets the value of the property titleSide.protected boolean
shouldAnimate()
This is used to check if any given animation should run.StringProperty
titleProperty()
The chart titleObjectProperty<Side>
titleSideProperty()
The side of the chart where the title is displayed-
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 class javafx.scene.Parent
getBaselineOffset, getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, queryAccessibleAttribute, requestLayout, requestParentLayout, setNeedsLayout, updateBounds
-
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 interface javafx.css.Styleable
getStyleableNode
-
-
-
-
Property Detail
-
title
public final StringProperty titleProperty
The chart title- See Also:
getTitle()
,setTitle(String)
-
titleSide
public final ObjectProperty<Side> titleSideProperty
The side of the chart where the title is displayed- Default value:
- Side.TOP
- See Also:
getTitleSide()
,setTitleSide(Side)
-
legend
protected final ObjectProperty<Node> legendProperty
The node to display as the Legend. Subclasses can set a node here to be displayed on a side as the legend. If no legend is wanted then this can be set to null- See Also:
getLegend()
,setLegend(Node)
-
legendVisible
public final BooleanProperty legendVisibleProperty
When true the chart will display a legend if the chart implementation supports a legend.- See Also:
isLegendVisible()
,setLegendVisible(boolean)
-
legendSide
public final ObjectProperty<Side> legendSideProperty
The side of the chart where the legend should be displayed- Default value:
- Side.BOTTOM
- See Also:
getLegendSide()
,setLegendSide(Side)
-
animated
public final BooleanProperty animatedProperty
When true any data changes will be animated.- See Also:
getAnimated()
,setAnimated(boolean)
-
-
Method Detail
-
getTitle
public final String getTitle()
Gets the value of the property title.- Property description:
- The chart title
-
setTitle
public final void setTitle(String value)
Sets the value of the property title.- Property description:
- The chart title
-
titleProperty
public final StringProperty titleProperty()
The chart title- See Also:
getTitle()
,setTitle(String)
-
getTitleSide
public final Side getTitleSide()
Gets the value of the property titleSide.- Property description:
- The side of the chart where the title is displayed
- Default value:
- Side.TOP
-
setTitleSide
public final void setTitleSide(Side value)
Sets the value of the property titleSide.- Property description:
- The side of the chart where the title is displayed
- Default value:
- Side.TOP
-
titleSideProperty
public final ObjectProperty<Side> titleSideProperty()
The side of the chart where the title is displayed- Default value:
- Side.TOP
- See Also:
getTitleSide()
,setTitleSide(Side)
-
getLegend
protected final Node getLegend()
Gets the value of the property legend.- Property description:
- The node to display as the Legend. Subclasses can set a node here to be displayed on a side as the legend. If no legend is wanted then this can be set to null
-
setLegend
protected final void setLegend(Node value)
Sets the value of the property legend.- Property description:
- The node to display as the Legend. Subclasses can set a node here to be displayed on a side as the legend. If no legend is wanted then this can be set to null
-
legendProperty
protected final ObjectProperty<Node> legendProperty()
The node to display as the Legend. Subclasses can set a node here to be displayed on a side as the legend. If no legend is wanted then this can be set to null- See Also:
getLegend()
,setLegend(Node)
-
isLegendVisible
public final boolean isLegendVisible()
Gets the value of the property legendVisible.- Property description:
- When true the chart will display a legend if the chart implementation supports a legend.
-
setLegendVisible
public final void setLegendVisible(boolean value)
Sets the value of the property legendVisible.- Property description:
- When true the chart will display a legend if the chart implementation supports a legend.
-
legendVisibleProperty
public final BooleanProperty legendVisibleProperty()
When true the chart will display a legend if the chart implementation supports a legend.- See Also:
isLegendVisible()
,setLegendVisible(boolean)
-
getLegendSide
public final Side getLegendSide()
Gets the value of the property legendSide.- Property description:
- The side of the chart where the legend should be displayed
- Default value:
- Side.BOTTOM
-
setLegendSide
public final void setLegendSide(Side value)
Sets the value of the property legendSide.- Property description:
- The side of the chart where the legend should be displayed
- Default value:
- Side.BOTTOM
-
legendSideProperty
public final ObjectProperty<Side> legendSideProperty()
The side of the chart where the legend should be displayed- Default value:
- Side.BOTTOM
- See Also:
getLegendSide()
,setLegendSide(Side)
-
getAnimated
public final boolean getAnimated()
Indicates whether data changes will be animated or not.- Returns:
- true if data changes will be animated and false otherwise.
-
setAnimated
public final void setAnimated(boolean value)
Sets the value of the property animated.- Property description:
- When true any data changes will be animated.
-
animatedProperty
public final BooleanProperty animatedProperty()
When true any data changes will be animated.- See Also:
getAnimated()
,setAnimated(boolean)
-
getChartChildren
protected ObservableList<Node> getChartChildren()
Modifiable and observable list of all content in the chart. This is where implementations of Chart should add any nodes they use to draw their chart. This excludes the legend and title which are looked after by this class.- Returns:
- Observable list of plot children
-
animate
protected void animate(Animation animation)
Play the given animation on every frame of the animation the chart will be relayed out until the animation finishes. So to add a animation to a chart, create a animation on data model, during layoutChartContent() map data model to nodes then call this method with the animation.- Parameters:
animation
- The animation to play
-
requestChartLayout
protected void requestChartLayout()
Call this when you know something has changed that needs the chart to be relayed out.
-
shouldAnimate
protected final boolean shouldAnimate()
This is used to check if any given animation should run. It returns true if animation is enabled and the node is visible and in a scene.- Returns:
- true if animation is enabled and the node is visible and in a scene
-
layoutChartChildren
protected abstract void layoutChartChildren(double top, double left, double width, double height)
Called to update and layout the chart children available from getChartChildren()- Parameters:
top
- The top offset from the origin to account for any padding on the chart contentleft
- The left offset from the origin to account for any padding on the chart contentwidth
- The width of the area to layout the chart withinheight
- The height of the area to layout the chart within
-
layoutChildren
protected void layoutChildren()
Invoked during the layout pass to layout this chart and all its content.- Overrides:
layoutChildren
in classParent
-
computeMinHeight
protected double computeMinHeight(double width)
Charts are sized outside in, user tells chart how much space it has and chart draws inside that. So minimum height is a constant 150.- Overrides:
computeMinHeight
in classRegion
- Parameters:
width
- the width that should be used if min height depends on it- Returns:
- the computed minimum height for this region
-
computeMinWidth
protected double computeMinWidth(double height)
Charts are sized outside in, user tells chart how much space it has and chart draws inside that. So minimum width is a constant 200.- Overrides:
computeMinWidth
in classRegion
- Parameters:
height
- the height that should be used if min width depends on it- Returns:
- the computed minimum width of this region
-
computePrefWidth
protected double computePrefWidth(double height)
Charts are sized outside in, user tells chart how much space it has and chart draws inside that. So preferred width is a constant 500.- Overrides:
computePrefWidth
in classRegion
- Parameters:
height
- the height that should be used if preferred width depends on it- Returns:
- the computed preferred width for this region
-
computePrefHeight
protected double computePrefHeight(double width)
Charts are sized outside in, user tells chart how much space it has and chart draws inside that. So preferred height is a constant 400.- Overrides:
computePrefHeight
in classRegion
- Parameters:
width
- the width that should be used if preferred height depends on it- Returns:
- the computed preferred height for this region
-
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 toNode.getClassCssMetaData()
so that a Node's CssMetaData can be accessed without the need for reflection.- Specified by:
getCssMetaData
in interfaceStyleable
- Overrides:
getCssMetaData
in classRegion
- Returns:
- The CssMetaData associated with this node, which may include the CssMetaData of its superclasses.
- Since:
- JavaFX 8.0
-
-