Class SVGImageView

java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.control.Control
com.dlsc.gemsfx.SVGImageView
All Implemented Interfaces:
javafx.css.Styleable, javafx.event.EventTarget, javafx.scene.control.Skinnable

public class SVGImageView extends javafx.scene.control.Control
A control which can display SVG images.

SVGImageView can display svg icons in high definition, and they won't become blurry even when zoomed in.

Note for SvgImageView: Currently, due to the limitation that weisj can only render BufferedImage from SVG, SvgImageView does not support usage in native packaging scenarios.

  • Property Summary

    Properties
    Type
    Property
    Description
    final javafx.beans.property.BooleanProperty
    A property that indicates whether the SVG image should be loaded in the background.
    final javafx.beans.property.DoubleProperty
    Defines the height of the box that the source svg image should fit into.
    final javafx.beans.property.DoubleProperty
    Defines the width of the box that the source svg image should fit into.
    final javafx.beans.property.BooleanProperty
    A property that determines whether the image should maintain its aspect ratio or not.
    final javafx.beans.property.BooleanProperty
    A property that determines whether the SVG image should be rendered using a smoothing algorithm.
    final javafx.beans.property.StringProperty
    A property that holds the URL of the SVG image to be rendered.

    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.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
    Constructs a new SVGImageView.
    Constructs a new SVGImageView with the given SVG url.
  • Method Summary

    Modifier and Type
    Method
    Description
    final javafx.beans.property.BooleanProperty
    A property that indicates whether the SVG image should be loaded in the background.
    protected javafx.scene.control.Skin<?>
     
    final javafx.beans.property.DoubleProperty
    Defines the height of the box that the source svg image should fit into.
    final javafx.beans.property.DoubleProperty
    Defines the width of the box that the source svg image should fit into.
    static List<javafx.css.CssMetaData<? extends javafx.css.Styleable, ?>>
    Returns the CSS metadata associated with this class.
    protected List<javafx.css.CssMetaData<? extends javafx.css.Styleable, ?>>
     
    final double
    Gets the value of fitHeightProperty().
    final double
    Gets the value of fitWidthProperty().
    final String
    Gets the value of the svgUrl property.
    final boolean
    Gets the value of the backgroundLoading property.
    final boolean
    Gets the value of the preserveRatioProperty() property.
    final boolean
    Gets the value of the smooth property.
    final javafx.beans.property.BooleanProperty
    A property that determines whether the image should maintain its aspect ratio or not.
    final void
    setBackgroundLoading(boolean backgroundLoading)
    Sets the value of the backgroundLoading property.
    final void
    setFitHeight(double fitHeight)
    Sets the value of the fitHeightProperty() property.
    final void
    setFitWidth(double width)
    Sets the value of the fitWidthProperty().
    final void
    setPreserveRatio(boolean preserveRatio)
    Sets the value of the preserveRatio property.
    final void
    setSmooth(boolean smooth)
    Sets the value of the smooth property.
    final void
    setSvgUrl(String svgUrl)
    Sets the value of the svgUrl property.
    final javafx.beans.property.BooleanProperty
    A property that determines whether the SVG image should be rendered using a smoothing algorithm.
    final javafx.beans.property.StringProperty
    A property that holds the URL of the SVG image to be rendered.

    Methods inherited from class javafx.scene.control.Control

    computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, contextMenuProperty, executeAccessibleAction, getBaselineOffset, getContextMenu, getCssMetaData, getInitialFocusTraversable, getSkin, getTooltip, isResizable, layoutChildren, queryAccessibleAttribute, 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, getUserAgentStylesheet, 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, 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 inherited from class Object

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

    Methods inherited from interface javafx.css.Styleable

    getStyleableNode
  • Property Details

    • fitWidth

      public final javafx.beans.property.DoubleProperty fitWidthProperty
      Defines the width of the box that the source svg image should fit into. If the value is invalid input: '<'= 0, the svg image's intrinsic width will be used.

      When preserveRatioProperty() is set to true, then the actual displayed width of the image is constrained not only by this property, but also by fitHeightProperty(), and it may not be the same as fitWidth.

      Can be set via CSS using the -fx-fit-width property. Valid values are: numbers (use 0 to use the image's intrinsic width). The default value is 0.

      See Also:
    • fitHeight

      public final javafx.beans.property.DoubleProperty fitHeightProperty
      Defines the height of the box that the source svg image should fit into. If the value is invalid input: '<'= 0, the svg image's intrinsic height will be used.

      When preserveRatioProperty() is set to true, then the actual displayed height of the image is constrained not only by this property, but also by fitWidthProperty(), and it may not be the same as fitHeight.

      Can be set via CSS using the -fx-fit-height property. Valid values are: numbers (use 0 to use the image's intrinsic height). The default value is 0.

      See Also:
    • preserveRatio

      public final javafx.beans.property.BooleanProperty preserveRatioProperty
      A property that determines whether the image should maintain its aspect ratio or not. When set to true, the image will preserve its aspect ratio. When set to false, the image may be stretched or compressed to fit the specified dimensions, without preserving its aspect ratio.

      Can be set via CSS using the -fx-preserve-ratio property. Valid values are: true or false. The default value is true.

      See Also:
    • smooth

      public final javafx.beans.property.BooleanProperty smoothProperty
      A property that determines whether the SVG image should be rendered using a smoothing algorithm. If true, the image will be rendered with smoothing applied, which can improve the visual quality but may reduce performance.

      Can be set via CSS using the -fx-smooth property. Valid values are: true or false. The default value is true.

      See Also:
    • svgUrl

      public final javafx.beans.property.StringProperty svgUrlProperty
      A property that holds the URL of the SVG image to be rendered. Changing the URL will result in loading and rendering the new SVG image.

      Can be set via CSS using the -fx-svg-url property. Valid values are: a URL string pointing to an SVG file. The default value is null.

      See Also:
    • backgroundLoading

      public final javafx.beans.property.BooleanProperty backgroundLoadingProperty
      A property that indicates whether the SVG image should be loaded in the background. When set to true, the image is loaded in a background thread, allowing for asynchronous loading of images.

      Can be set via CSS using the -fx-background-loading property. Valid values are: true or false. The default value is false.

      See Also:
  • Constructor Details

    • SVGImageView

      public SVGImageView()
      Constructs a new SVGImageView.
    • SVGImageView

      public SVGImageView(String url)
      Constructs a new SVGImageView with the given SVG url.
      Parameters:
      url - the url of the SVG image to be rendered
  • Method Details

    • createDefaultSkin

      protected javafx.scene.control.Skin<?> createDefaultSkin()
      Overrides:
      createDefaultSkin in class javafx.scene.control.Control
    • getFitWidth

      public final double getFitWidth()
      Gets the value of fitWidthProperty().
      Returns:
      The fit width value.
    • fitWidthProperty

      public final javafx.beans.property.DoubleProperty fitWidthProperty()
      Defines the width of the box that the source svg image should fit into. If the value is invalid input: '<'= 0, the svg image's intrinsic width will be used.

      When preserveRatioProperty() is set to true, then the actual displayed width of the image is constrained not only by this property, but also by fitHeightProperty(), and it may not be the same as fitWidth.

      Can be set via CSS using the -fx-fit-width property. Valid values are: numbers (use 0 to use the image's intrinsic width). The default value is 0.

      Returns:
      the fitWidth property
      See Also:
    • setFitWidth

      public final void setFitWidth(double width)
      Sets the value of the fitWidthProperty().
      Parameters:
      width - the "fit width" value.
    • getFitHeight

      public final double getFitHeight()
      Gets the value of fitHeightProperty().
      Returns:
      The fit height value
    • fitHeightProperty

      public final javafx.beans.property.DoubleProperty fitHeightProperty()
      Defines the height of the box that the source svg image should fit into. If the value is invalid input: '<'= 0, the svg image's intrinsic height will be used.

      When preserveRatioProperty() is set to true, then the actual displayed height of the image is constrained not only by this property, but also by fitWidthProperty(), and it may not be the same as fitHeight.

      Can be set via CSS using the -fx-fit-height property. Valid values are: numbers (use 0 to use the image's intrinsic height). The default value is 0.

      Returns:
      the fitHeight property
      See Also:
    • setFitHeight

      public final void setFitHeight(double fitHeight)
      Sets the value of the fitHeightProperty() property.
      Parameters:
      fitHeight - the "fit height" value
    • isPreserveRatio

      public final boolean isPreserveRatio()
      Gets the value of the preserveRatioProperty() property.
      Returns:
      The preserve ratio value.
    • preserveRatioProperty

      public final javafx.beans.property.BooleanProperty preserveRatioProperty()
      A property that determines whether the image should maintain its aspect ratio or not. When set to true, the image will preserve its aspect ratio. When set to false, the image may be stretched or compressed to fit the specified dimensions, without preserving its aspect ratio.

      Can be set via CSS using the -fx-preserve-ratio property. Valid values are: true or false. The default value is true.

      Returns:
      the preserveRatio property
      See Also:
    • setPreserveRatio

      public final void setPreserveRatio(boolean preserveRatio)
      Sets the value of the preserveRatio property.
      Parameters:
      preserveRatio - the preserve ratio value.
    • isSmooth

      public final boolean isSmooth()
      Gets the value of the smooth property.
      Returns:
      The smooth value.
    • smoothProperty

      public final javafx.beans.property.BooleanProperty smoothProperty()
      A property that determines whether the SVG image should be rendered using a smoothing algorithm. If true, the image will be rendered with smoothing applied, which can improve the visual quality but may reduce performance.

      Can be set via CSS using the -fx-smooth property. Valid values are: true or false. The default value is true.

      Returns:
      the smooth property
      See Also:
    • setSmooth

      public final void setSmooth(boolean smooth)
      Sets the value of the smooth property.
      Parameters:
      smooth - The smooth value.
    • getSvgUrl

      public final String getSvgUrl()
      Gets the value of the svgUrl property.
      Returns:
      The svg url value.
    • svgUrlProperty

      public final javafx.beans.property.StringProperty svgUrlProperty()
      A property that holds the URL of the SVG image to be rendered. Changing the URL will result in loading and rendering the new SVG image.

      Can be set via CSS using the -fx-svg-url property. Valid values are: a URL string pointing to an SVG file. The default value is null.

      Returns:
      the svgUrl property
      See Also:
    • setSvgUrl

      public final void setSvgUrl(String svgUrl)
      Sets the value of the svgUrl property.
      Parameters:
      svgUrl - The svg url value.
    • isBackgroundLoading

      public final boolean isBackgroundLoading()
      Gets the value of the backgroundLoading property.
      Returns:
      The background loading value.
    • backgroundLoadingProperty

      public final javafx.beans.property.BooleanProperty backgroundLoadingProperty()
      A property that indicates whether the SVG image should be loaded in the background. When set to true, the image is loaded in a background thread, allowing for asynchronous loading of images.

      Can be set via CSS using the -fx-background-loading property. Valid values are: true or false. The default value is false.

      Returns:
      the backgroundLoading property
      See Also:
    • setBackgroundLoading

      public final void setBackgroundLoading(boolean backgroundLoading)
      Sets the value of the backgroundLoading property.
      Parameters:
      backgroundLoading - The background loading value.
    • 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()
      Returns the CSS metadata associated with this class.
      Returns:
      A list of CssMetaData objects containing the CSS metadata.