Class ArcProgressIndicator

java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.control.Control
javafx.scene.control.ProgressIndicator
com.dlsc.gemsfx.ArcProgressIndicator
All Implemented Interfaces:
javafx.css.Styleable, javafx.event.EventTarget, javafx.scene.control.Skinnable
Direct Known Subclasses:
CircleProgressIndicator, SemiCircleProgressIndicator

public class ArcProgressIndicator extends javafx.scene.control.ProgressIndicator
ArcProgressIndicator is a visual control used to indicate the progress of a task. It represents progress in an arc form, with options to show determinate or indeterminate states.

In a determinate state, the arc fills up based on the progress value, which ranges from 0.0 to 1.0, where 0.0 indicates no progress and 1.0 indicates completion.

In an indeterminate state, the arc shows a cyclic animation, indicating that progress is ongoing but the exact status is unknown. This state is useful for tasks where the progress cannot be determined.

The control also supports displaying a text or graphic inside the arc to provide additional information or visual feedback to the user.

Usage examples include file downloads, file transfers, or any long-running tasks where visual feedback on progress is beneficial.

Pseudo class: Beyond the inherited, indeterminate, and determinate pseudo-classes from ProgressIndicator, ArcProgressIndicator introduces a completed pseudo-class. This pseudo-class can be used in CSS to apply custom styles when the progress reaches 1.0 (100%).

Tips: If you prefer not to instantiate the animation object during initialization, pass a 0.0 as the initial progress. This setup indicates no progress but avoids entering the indeterminate state, which would otherwise instantiate and start the animation.

Usage examples:

     // Initializes with no progress and no animation.
     ArcProgressIndicator progressIndicator = new ArcProgressIndicator(0.0);
 
  • Property Summary

    Properties
    Type
    Property
    Description
    final javafx.beans.property.ObjectProperty<javafx.util.StringConverter<Double>>
    The converter is used to convert the progress value to a string that is displayed
    final javafx.beans.property.ObjectProperty<javafx.scene.Node>
    The graphic property is used to display a custom node within the progress indicator.
    final javafx.beans.property.ObjectProperty<javafx.scene.shape.ArcType>
    The arc type property defines the type of the arc that is used to display the progress.
    final javafx.beans.property.ObjectProperty<javafx.scene.shape.ArcType>
    The arc type property defines the type of the arc that is used to display the track.

    Properties inherited from class javafx.scene.control.ProgressIndicator

    indeterminate, progress

    Properties inherited from class javafx.scene.control.Control

    contextMenu, skin, tooltip

    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, 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 inherited from class javafx.scene.control.ProgressIndicator

    INDETERMINATE_PROGRESS

    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
     
    ArcProgressIndicator(double progress)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    final javafx.beans.property.ObjectProperty<javafx.util.StringConverter<Double>>
    The converter is used to convert the progress value to a string that is displayed
    static List<javafx.css.CssMetaData<? extends javafx.css.Styleable,?>>
     
    protected List<javafx.css.CssMetaData<? extends javafx.css.Styleable,?>>
     
    final javafx.util.StringConverter<Double>
    Gets the value of the property converter.
    final javafx.scene.Node
    Gets the value of the property graphic.
    final javafx.scene.shape.ArcType
    Gets the value of the property progressArcType.
    final javafx.scene.shape.ArcType
    Gets the value of the property trackArcType.
     
    final javafx.beans.property.ObjectProperty<javafx.scene.Node>
    The graphic property is used to display a custom node within the progress indicator.
    final javafx.beans.property.ObjectProperty<javafx.scene.shape.ArcType>
    The arc type property defines the type of the arc that is used to display the progress.
    final void
    setConverter(javafx.util.StringConverter<Double> converter)
    Sets the value of the property converter.
    final void
    setGraphic(javafx.scene.Node graphic)
    Sets the value of the property graphic.
    final void
    setProgressArcType(javafx.scene.shape.ArcType progressArcType)
    Sets the value of the property progressArcType.
    final void
    setTrackArcType(javafx.scene.shape.ArcType trackArcType)
    Sets the value of the property trackArcType.
    final javafx.beans.property.ObjectProperty<javafx.scene.shape.ArcType>
    The arc type property defines the type of the arc that is used to display the track.

    Methods inherited from class javafx.scene.control.ProgressIndicator

    createDefaultSkin, getInitialFocusTraversable, getProgress, indeterminateProperty, isIndeterminate, progressProperty, queryAccessibleAttribute, setProgress

    Methods inherited from class javafx.scene.control.Control

    computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, contextMenuProperty, executeAccessibleAction, getBaselineOffset, getContextMenu, getCssMetaData, getSkin, getTooltip, isResizable, layoutChildren, setContextMenu, setSkin, setTooltip, skinProperty, tooltipProperty

    Methods inherited from class javafx.scene.layout.Region

    backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getWidth, heightProperty, insetsProperty, isCacheShape, isCenterShape, 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

    getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, 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, fireEvent, focusedProperty, focusTraversableProperty, focusVisibleProperty, focusWithinProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getContentBias, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, 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, 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

    • converter

      public final javafx.beans.property.ObjectProperty<javafx.util.StringConverter<Double>> converterProperty
      The converter is used to convert the progress value to a string that is displayed
      See Also:
    • graphic

      public final javafx.beans.property.ObjectProperty<javafx.scene.Node> graphicProperty
      The graphic property is used to display a custom node within the progress indicator. progress label's graphic property is bound to this property.
      See Also:
    • progressArcType

      public final javafx.beans.property.ObjectProperty<javafx.scene.shape.ArcType> progressArcTypeProperty
      The arc type property defines the type of the arc that is used to display the progress.
      See Also:
    • trackArcType

      public final javafx.beans.property.ObjectProperty<javafx.scene.shape.ArcType> trackArcTypeProperty
      The arc type property defines the type of the arc that is used to display the track.
      See Also:
  • Constructor Details

    • ArcProgressIndicator

      public ArcProgressIndicator()
    • ArcProgressIndicator

      public ArcProgressIndicator(double progress)
  • Method Details

    • getUserAgentStylesheet

      public String getUserAgentStylesheet()
      Overrides:
      getUserAgentStylesheet in class javafx.scene.layout.Region
    • getConverter

      public final javafx.util.StringConverter<Double> getConverter()
      Gets the value of the property converter.
      Property description:
      The converter is used to convert the progress value to a string that is displayed
    • converterProperty

      public final javafx.beans.property.ObjectProperty<javafx.util.StringConverter<Double>> converterProperty()
      The converter is used to convert the progress value to a string that is displayed
      See Also:
    • setConverter

      public final void setConverter(javafx.util.StringConverter<Double> converter)
      Sets the value of the property converter.
      Property description:
      The converter is used to convert the progress value to a string that is displayed
    • graphicProperty

      public final javafx.beans.property.ObjectProperty<javafx.scene.Node> graphicProperty()
      The graphic property is used to display a custom node within the progress indicator. progress label's graphic property is bound to this property.
      See Also:
    • getGraphic

      public final javafx.scene.Node getGraphic()
      Gets the value of the property graphic.
      Property description:
      The graphic property is used to display a custom node within the progress indicator. progress label's graphic property is bound to this property.
    • setGraphic

      public final void setGraphic(javafx.scene.Node graphic)
      Sets the value of the property graphic.
      Property description:
      The graphic property is used to display a custom node within the progress indicator. progress label's graphic property is bound to this property.
    • progressArcTypeProperty

      public final javafx.beans.property.ObjectProperty<javafx.scene.shape.ArcType> progressArcTypeProperty()
      The arc type property defines the type of the arc that is used to display the progress.
      See Also:
    • getProgressArcType

      public final javafx.scene.shape.ArcType getProgressArcType()
      Gets the value of the property progressArcType.
      Property description:
      The arc type property defines the type of the arc that is used to display the progress.
    • setProgressArcType

      public final void setProgressArcType(javafx.scene.shape.ArcType progressArcType)
      Sets the value of the property progressArcType.
      Property description:
      The arc type property defines the type of the arc that is used to display the progress.
    • trackArcTypeProperty

      public final javafx.beans.property.ObjectProperty<javafx.scene.shape.ArcType> trackArcTypeProperty()
      The arc type property defines the type of the arc that is used to display the track.
      See Also:
    • getTrackArcType

      public final javafx.scene.shape.ArcType getTrackArcType()
      Gets the value of the property trackArcType.
      Property description:
      The arc type property defines the type of the arc that is used to display the track.
    • setTrackArcType

      public final void setTrackArcType(javafx.scene.shape.ArcType trackArcType)
      Sets the value of the property trackArcType.
      Property description:
      The arc type property defines the type of the arc that is used to display the track.
    • getControlCssMetaData

      protected List<javafx.css.CssMetaData<? extends javafx.css.Styleable,?>> getControlCssMetaData()
      Overrides:
      getControlCssMetaData in class javafx.scene.control.Control
    • getClassCssMetaData

      public static List<javafx.css.CssMetaData<? extends javafx.css.Styleable,?>> getClassCssMetaData()