Class LimitedTextArea

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

public class LimitedTextArea extends ResizableTextArea
A specialized text area view that imposes restrictions on the input text length, allowing specification of minimum and maximum character limits. It provides the functionality to define a range of allowed text lengths and supports the removal of specified strings by replacing them with an empty string. This component is designed for scenarios where input text needs to adhere to specific length requirements and certain substrings are not permitted.

If the text length range is not specified, the value of the text length indicator label will reflect the number of characters in the text area. If a range is specified, the label will show the difference between the current text length and the maximum allowed character count. Should the text exceed the allowed maximum, the label will display a negative number.

Use cases include form fields where input character count is restricted within a certain range for validation purposes, or text areas that need to filter out specific unwanted characters or phrases.

  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static enum 
     

    Nested classes/interfaces inherited from class javafx.scene.control.TextInputControl

    javafx.scene.control.TextInputControl.Content
  • Property Summary

    Properties
    Type
    Property
    Description
    final javafx.beans.property.ObjectProperty<IntegerRange>
    The character range limit property defines the minimum and maximum number of characters allowed in the text area.
    final javafx.beans.property.ObjectProperty<LimitedTextArea.LengthDisplayMode>
    The length display mode property defines when the text length indicator label should be displayed.
    final javafx.beans.property.ReadOnlyBooleanProperty
    A read-only property indicating whether the text content is over the maximum length or under the minimum length.
    final javafx.beans.property.BooleanProperty
    Controls whether the bottom area (containing the character count and tips) is shown.
    final javafx.beans.property.StringProperty
    The tips property used to display a hint or description of the text area.
    final javafx.beans.property.DoubleProperty
    The warning threshold is a value between 0 and 1.

    Properties inherited from class ResizableTextArea

    resizeHorizontal, resizeVertical

    Properties inherited from class javafx.scene.control.TextArea

    prefColumnCount, prefRowCount, scrollLeft, scrollTop, wrapText

    Properties inherited from class javafx.scene.control.TextInputControl

    anchor, caretPosition, editable, font, length, promptText, redoable, selectedText, selection, textFormatter, text, undoable

    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.TextArea

    DEFAULT_PREF_COLUMN_COUNT, DEFAULT_PREF_ROW_COUNT

    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
     
     
  • Method Summary

    Modifier and Type
    Method
    Description
    final javafx.beans.property.ObjectProperty<IntegerRange>
    The character range limit property defines the minimum and maximum number of characters allowed in the text area.
    protected javafx.scene.control.Skin<?>
     
    Gets the value of the characterRangeLimit property.
    static List<javafx.css.CssMetaData<? extends javafx.css.Styleable, ?>>
     
    List<javafx.css.CssMetaData<? extends javafx.css.Styleable, ?>>
     
    final javafx.collections.ObservableList<String>
     
    Gets the value of the lengthDisplayMode property.
    final String
    Gets the value of the tips property.
     
    final double
     
    final double
    Gets the value of the warningThreshold property.
    final boolean
    Gets the value of the outOfRange property.
    final boolean
    Gets the value of the showBottom property.
    final javafx.beans.property.ObjectProperty<LimitedTextArea.LengthDisplayMode>
    The length display mode property defines when the text length indicator label should be displayed.
    final javafx.beans.property.ReadOnlyBooleanProperty
    A read-only property indicating whether the text content is over the maximum length or under the minimum length.
    final void
    setCharacterRangeLimit(IntegerRange characterRangeLimit)
    Sets the value of the characterRangeLimit property.
    final void
    Sets the value of the lengthDisplayMode property.
    final void
    setShowBottom(boolean showBottom)
    Sets the value of the showBottom property.
    final void
    Sets the value of the tips property.
    final void
    setWarningThreshold(double warningThreshold)
    Sets the value of the warningThreshold property.
    final javafx.beans.property.BooleanProperty
    Controls whether the bottom area (containing the character count and tips) is shown.
    final javafx.beans.property.StringProperty
    The tips property used to display a hint or description of the text area.
    final javafx.beans.property.DoubleProperty
    The warning threshold is a value between 0 and 1.

    Methods inherited from class javafx.scene.control.TextArea

    getParagraphs, getPrefColumnCount, getPrefRowCount, getScrollLeft, getScrollTop, isWrapText, prefColumnCountProperty, prefRowCountProperty, scrollLeftProperty, scrollTopProperty, setPrefColumnCount, setPrefRowCount, setScrollLeft, setScrollTop, setWrapText, wrapTextProperty

    Methods inherited from class javafx.scene.control.TextInputControl

    anchorProperty, appendText, backward, cancelEdit, caretPositionProperty, clear, commitValue, copy, cut, deleteNextChar, deletePreviousChar, deleteText, deleteText, deselect, editableProperty, end, endOfNextWord, executeAccessibleAction, extendSelection, fontProperty, forward, getAnchor, getCaretPosition, getContent, getFont, getLength, getPromptText, getSelectedText, getSelection, getText, getText, getTextFormatter, home, insertText, isEditable, isRedoable, isUndoable, lengthProperty, nextWord, paste, positionCaret, previousWord, promptTextProperty, queryAccessibleAttribute, redo, redoableProperty, replaceSelection, replaceText, replaceText, selectAll, selectBackward, selectedTextProperty, selectEnd, selectEndOfNextWord, selectForward, selectHome, selectionProperty, selectNextWord, selectPositionCaret, selectPreviousWord, selectRange, setEditable, setFont, setPromptText, setText, setTextFormatter, textFormatterProperty, textProperty, undo, undoableProperty

    Methods inherited from class javafx.scene.control.Control

    computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, contextMenuProperty, getBaselineOffset, getContextMenu, getCssMetaData, getInitialFocusTraversable, 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, 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

  • Constructor Details

    • LimitedTextArea

      public LimitedTextArea()
    • LimitedTextArea

      public LimitedTextArea(String text)
  • Method Details

    • getUserAgentStylesheet

      public String getUserAgentStylesheet()
      Overrides:
      getUserAgentStylesheet in class ResizableTextArea
    • createDefaultSkin

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

      public final javafx.beans.property.BooleanProperty showBottomProperty()
      Controls whether the bottom area (containing the character count and tips) is shown.

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

      Returns:
      the show bottom property
      See Also:
    • isShowBottom

      public final boolean isShowBottom()
      Gets the value of the showBottom property.
      Property description:
      Controls whether the bottom area (containing the character count and tips) is shown.

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

      Returns:
      the value of the showBottom property
      See Also:
    • setShowBottom

      public final void setShowBottom(boolean showBottom)
      Sets the value of the showBottom property.
      Property description:
      Controls whether the bottom area (containing the character count and tips) is shown.

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

      Parameters:
      showBottom - the value for the showBottom property
      See Also:
    • getCharacterRangeLimit

      public final IntegerRange getCharacterRangeLimit()
      Gets the value of the characterRangeLimit property.
      Property description:
      The character range limit property defines the minimum and maximum number of characters allowed in the text area.
      Returns:
      the value of the characterRangeLimit property
      See Also:
    • characterRangeLimitProperty

      public final javafx.beans.property.ObjectProperty<IntegerRange> characterRangeLimitProperty()
      The character range limit property defines the minimum and maximum number of characters allowed in the text area.
      Returns:
      the character range limit property
      See Also:
    • setCharacterRangeLimit

      public final void setCharacterRangeLimit(IntegerRange characterRangeLimit)
      Sets the value of the characterRangeLimit property.
      Property description:
      The character range limit property defines the minimum and maximum number of characters allowed in the text area.
      Parameters:
      characterRangeLimit - the value for the characterRangeLimit property
      See Also:
    • getExcludedItems

      public final javafx.collections.ObservableList<String> getExcludedItems()
    • getTips

      public final String getTips()
      Gets the value of the tips property.
      Property description:
      The tips property used to display a hint or description of the text area.
      Returns:
      the value of the tips property
      See Also:
    • tipsProperty

      public final javafx.beans.property.StringProperty tipsProperty()
      The tips property used to display a hint or description of the text area.
      Returns:
      the tips property
      See Also:
    • setTips

      public final void setTips(String tips)
      Sets the value of the tips property.
      Property description:
      The tips property used to display a hint or description of the text area.
      Parameters:
      tips - the value for the tips property
      See Also:
    • isOutOfRange

      public final boolean isOutOfRange()
      Gets the value of the outOfRange property.
      Property description:
      A read-only property indicating whether the text content is over the maximum length or under the minimum length.
      Returns:
      the value of the outOfRange property
      See Also:
    • outOfRangeProperty

      public final javafx.beans.property.ReadOnlyBooleanProperty outOfRangeProperty()
      A read-only property indicating whether the text content is over the maximum length or under the minimum length.
      Returns:
      the outOfRange property
      See Also:
    • getLengthDisplayMode

      public final LimitedTextArea.LengthDisplayMode getLengthDisplayMode()
      Gets the value of the lengthDisplayMode property.
      Property description:
      The length display mode property defines when the text length indicator label should be displayed. LimitedTextArea.LengthDisplayMode.AUTO, LimitedTextArea.LengthDisplayMode.ALWAYS_SHOW, LimitedTextArea.LengthDisplayMode.ALWAYS_HIDE

      Can be set via CSS using the -fx-length-display-mode property. Valid values are: auto, always-show, always-hide. The default value is auto.

      Returns:
      the value of the lengthDisplayMode property
      See Also:
    • lengthDisplayModeProperty

      public final javafx.beans.property.ObjectProperty<LimitedTextArea.LengthDisplayMode> lengthDisplayModeProperty()
      The length display mode property defines when the text length indicator label should be displayed. LimitedTextArea.LengthDisplayMode.AUTO, LimitedTextArea.LengthDisplayMode.ALWAYS_SHOW, LimitedTextArea.LengthDisplayMode.ALWAYS_HIDE

      Can be set via CSS using the -fx-length-display-mode property. Valid values are: auto, always-show, always-hide. The default value is auto.

      Returns:
      the length display mode property
      See Also:
    • setLengthDisplayMode

      public final void setLengthDisplayMode(LimitedTextArea.LengthDisplayMode lengthDisplayMode)
      Sets the value of the lengthDisplayMode property.
      Property description:
      The length display mode property defines when the text length indicator label should be displayed. LimitedTextArea.LengthDisplayMode.AUTO, LimitedTextArea.LengthDisplayMode.ALWAYS_SHOW, LimitedTextArea.LengthDisplayMode.ALWAYS_HIDE

      Can be set via CSS using the -fx-length-display-mode property. Valid values are: auto, always-show, always-hide. The default value is auto.

      Parameters:
      lengthDisplayMode - the value for the lengthDisplayMode property
      See Also:
    • getWarningThreshold

      public final double getWarningThreshold()
      Gets the value of the warningThreshold property.
      Property description:
      The warning threshold is a value between 0 and 1. When the text length is greater than or equal to the maximum length times the warning threshold, the warning style will be applied.

      Can be set via CSS using the -fx-warning-threshold property. Valid values are: numbers in the range 0.01.0. The default value is 0.9.

      Returns:
      the value of the warningThreshold property
      See Also:
    • warningThresholdProperty

      public final javafx.beans.property.DoubleProperty warningThresholdProperty()
      The warning threshold is a value between 0 and 1. When the text length is greater than or equal to the maximum length times the warning threshold, the warning style will be applied.

      Can be set via CSS using the -fx-warning-threshold property. Valid values are: numbers in the range 0.01.0. The default value is 0.9.

      Returns:
      the warning threshold property
      See Also:
    • setWarningThreshold

      public final void setWarningThreshold(double warningThreshold)
      Sets the value of the warningThreshold property.
      Property description:
      The warning threshold is a value between 0 and 1. When the text length is greater than or equal to the maximum length times the warning threshold, the warning style will be applied.

      Can be set via CSS using the -fx-warning-threshold property. Valid values are: numbers in the range 0.01.0. The default value is 0.9.

      Parameters:
      warningThreshold - the value for the warningThreshold property
      See Also:
    • getValidWarningThreshold

      public final double getValidWarningThreshold()
    • getControlCssMetaData

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

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