- java.lang.Object
-
- javafx.scene.Node
-
- javafx.scene.Parent
-
- javafx.scene.layout.Region
-
- javafx.scene.layout.Pane
-
- javafx.scene.text.TextFlow
-
- All Implemented Interfaces:
-
Styleable
,EventTarget
public class TextFlow extends Pane
TextFlow是设计用于布置富文本的特殊布局。 它可以用于在单个文本流中布置多个Text
节点。 TextFlow使用文本和每个Text
节点的字体加上它自己的宽度和文本对齐方式来确定每个孩子的位置。 单个Text
节点可以跨越多条线路,由于包裹,并且由于双向重新排序,Text
节点的视觉位置可能与逻辑位置不同。任何其他节点,而不是文本,将被视为文本布局中的嵌入对象。 它将使用其首选的宽度,高度和基线偏移量插入到内容中。
当一个
Text
节点位于一个TextFlow内部时,其某些属性将被忽略。 例如,Text
节点的x和y属性将被忽略,因为节点的位置由父节点决定。 同样,Text
节点中的包装宽度被忽略,因为用于包装的宽度是TextFlow的宽度。 该值pickOnBounds
一个财产Text
设置为false
当它被TextFlow的布局。 这是因为单个Text
节点的内容可以分割并放置在TextFlow上的不同位置(通常是由于断线和双向重新排序)。布局的包装宽度由区域的当前宽度决定。 可以通过设置textflow的首选宽度来指定应用程序。 如果不需要打包,应用程序可以将首选项设置为Double.MAX_VALUE或Region.USE_COMPUTED_SIZE。
段落由任何文本小孩中的
'\n'
分隔。TextFlow示例:
Text text1 = new Text("Big italic red text"); text1.setFill(Color.RED); text1.setFont(Font.font("Helvetica", FontPosture.ITALIC, 40)); Text text2 = new Text(" little bold blue text"); text2.setFill(Color.BLUE); text2.setFont(Font.font("Helvetica", FontWeight.BOLD, 10)); TextFlow textFlow = new TextFlow(text1, text2);
TextFlow布置每个受管孩子,不管孩子的可见属性值如何; 所有布局计算都忽略非托管孩子。
TextFlow可以使用CSS来设计背景和边框。 有关详细信息,请参阅
Region
超类。可调整范围
文本流的父级将在布局期间在文本流范围内调整文本流的大小。 默认情况下,文本流根据其内容计算此范围,如下表所示。
TextFlow Resize Table width height minimum left/right insets top/bottom insets plus the height of the text content preferred left/right insets plus the width of the text content top/bottom insets plus the height of the text content maximum Double.MAX_VALUE Double.MAX_VALUE文本流的无界最大宽度和高度是父级的指示,它可以调整大小超出其首选大小,以填充分配给它的空间。
TextFlow提供了直接设置尺寸范围的属性。 这些属性默认为哨兵值Region.USE_COMPUTED_SIZE,但是应用程序可能会根据需要将它们设置为其他值:
textflow.setMaxWidth(500);
默认情况下,TextFlow不会剪切其内容,因此如果小孩的pref大小大于文本流必须分配的空间,则儿童的边界可能会扩展到其自己的边界之外。
- 从以下版本开始:
- JavaFX 8.0
-
-
Property Summary
Properties Type Property 描述 DoubleProperty
lineSpacing
定义行之间像素的垂直空间。ObjectProperty<TextAlignment>
textAlignment
定义水平文本对齐。-
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
-
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 PathElement[]
caretShape(int charIndex, boolean leading)
以局部坐标返回插入符号的形状。protected double
computeMinHeight(double width)
计算该区域的最小高度。protected double
computePrefHeight(double width)
计算给定宽度的该区域的首选高度; 区域子类应该覆盖此方法,以根据其内容和布局策略返回适当的值。protected double
computePrefWidth(double height)
计算给定高度的该区域的首选宽度。double
getBaselineOffset()
基于第一个受管理的子节点计算基线偏移量。static List<CssMetaData<? extends Styleable,?>>
getClassCssMetaData()
Orientation
getContentBias()
返回节点调整大小偏置的方向以进行布局。List<CssMetaData<? extends Styleable,?>>
getCssMetaData()
该方法应该委托给Node.getClassCssMetaData()
,以便可以访问Node的CssMetaData而不需要反射。double
getLineSpacing()
获取属性lineSpacing的值。TextAlignment
getTextAlignment()
获取属性textAlignment的值。HitInfo
hitTest(Point2D point)
将本地点映射到内容中的索引。protected void
layoutChildren()
在布局传递过程中调用这个Parent
的孩子。DoubleProperty
lineSpacingProperty()
定义行之间像素的垂直空间。Object
queryAccessibleAttribute(AccessibleAttribute attribute, Object... parameters)
该方法由辅助技术调用以请求属性的值。PathElement[]
rangeShape(int start, int end)
返回局部坐标中文本范围的形状。void
requestLayout()
请求在渲染下一个场景之前执行布局传递。void
setLineSpacing(double spacing)
设置属性lineSpacing的值。void
setTextAlignment(TextAlignment value)
设置textAlignment属性的值。protected void
setWidth(double value)
设置属性宽度的值。ObjectProperty<TextAlignment>
textAlignmentProperty()
定义水平文本对齐。boolean
usesMirroring()
确定当节点方向是从右到左时是否应该镜像节点。-
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, 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, 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.layout.Pane
getChildren
-
Methods inherited from class javafx.scene.Parent
getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, requestParentLayout, setNeedsLayout, updateBounds
-
Methods inherited from class javafx.scene.layout.Region
backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, computeMaxHeight, computeMaxWidth, computeMinWidth, 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, 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
-
textAlignment
public final ObjectProperty<TextAlignment> textAlignmentProperty
定义水平文本对齐。- Default value:
- TextAlignment.LEFT
- 另请参见:
-
getTextAlignment()
,setTextAlignment(TextAlignment)
-
lineSpacing
public final DoubleProperty lineSpacingProperty
定义行之间像素的垂直空间。- Default value:
- 0
- 从以下版本开始:
- JavaFX 8.0
- 另请参见:
-
getLineSpacing()
,setLineSpacing(double)
-
-
构造方法详细信息
-
TextFlow
public TextFlow()
创建一个空TextFlow布局。
-
TextFlow
public TextFlow(Node... children)
使用给定的子项创建TextFlow布局。- 参数
-
children
- 儿童。
-
-
方法详细信息
-
hitTest
public final HitInfo hitTest(Point2D point)
将本地点映射到内容中的索引。- 参数
-
point
- 要测试的指定点 - 结果
-
一个
HitInfo
代表发现的字符索引 - 从以下版本开始:
- 9
-
caretShape
public PathElement[] caretShape(int charIndex, boolean leading)
以局部坐标返回插入符号的形状。- 参数
-
charIndex
- 插入符号的字符索引 -
leading
- 插入符号是否偏离字符的前沿 - 结果
-
一个
PathElement
的数组,可以用来创建一个Shape
- 从以下版本开始:
- 9
-
rangeShape
public final PathElement[] rangeShape(int start, int end)
返回局部坐标中文本范围的形状。- 参数
-
start
- 范围的起始字符索引 -
end
- 范围的结束字符索引(不包含) - 结果
-
一个
PathElement
的阵列,可以用来创建一个Shape
- 从以下版本开始:
- 9
-
usesMirroring
public boolean usesMirroring()
描述从类复制:Node
确定当节点方向是从右到左时是否应该镜像节点。当一个节点被镜像时,原点会自动移动到右上角,导致节点布局孩子,并使用镜像转换从右到左绘制。 一些节点可能希望从右到左绘制,而不使用转换。 这些节点将会回复
false
并实现从右到左的方向,而不使用自动转换。- 重写:
-
usesMirroring
在Node
- 结果
-
如果这个
Node
应该镜像,Node
true
-
computePrefWidth
protected double computePrefWidth(double height)
描述从类复制:Region
计算给定高度的该区域的首选宽度。 区域子类应该覆盖此方法,以根据其内容和布局策略返回适当的值。 如果子类没有VERTICAL内容偏差,则可以忽略height参数。- 重写:
-
computePrefWidth
在Region
- 参数
-
height
- 如果首选宽度取决于应该使用的高度 - 结果
- 计算这个区域的首选宽度
-
computePrefHeight
protected double computePrefHeight(double width)
描述从类复制:Region
计算给定宽度的该区域的首选高度; 区域子类应该覆盖此方法,以根据其内容和布局策略返回适当的值。 如果子类没有HORIZONTAL内容偏差,则可以忽略width参数。- 重写:
-
computePrefHeight
在Region
- 参数
-
width
- 如果首选的高度取决于应该使用的宽度 - 结果
- 该区域计算的优选高度
-
computeMinHeight
protected double computeMinHeight(double width)
描述从类复制:Region
计算该区域的最小高度。 默认返回顶部和底部插入的总和。 区域子类应该覆盖此方法,以根据其内容和布局策略返回适当的值。 如果子类没有HORIZONTAL内容偏差,则可以忽略width参数。- 重写:
-
computeMinHeight
在Region
- 参数
-
width
- 如果最小高度取决于应该使用的宽度 - 结果
- 计算该区域的最小高度
-
requestLayout
public void requestLayout()
描述从类复制:Parent
请求在渲染下一个场景之前执行布局传递。 这是异步批量发生一次“脉冲”或动画帧。如果此父对象是布局根或非托管,则将直接添加到场景的脏布局列表中,否则将调用requestParentLayout。
- 重写:
-
requestLayout
在Parent
-
getContentBias
public Orientation getContentBias()
描述从类复制:Node
返回节点调整大小偏置的方向以进行布局。 如果节点类型没有偏差,则返回null。 如果节点可调整大小,并且其高度取决于其宽度,则返回HORIZONTAL,否则如果其宽度取决于其高度,则返回VERTICAL。可调整大小的子类应该覆盖此方法以返回适当的值。
- 重写:
-
getContentBias
类Node
- 结果
- width / height依赖的方向,如果没有则为null
- 另请参见:
-
Node.isResizable()
,Node.minWidth(double)
,Node.minHeight(double)
,Node.prefWidth(double)
,Node.prefHeight(double)
,Node.maxWidth(double)
,Node.maxHeight(double)
-
layoutChildren
protected void layoutChildren()
描述从类复制:Parent
在布局传递过程中调用这个Parent
的孩子。 默认情况下,它只会将受管理的可调整大小的内容的大小设置为其首选大小,并且不会执行任何节点定位。子类应该根据需要重写此函数以布局内容。
- 重写:
-
layoutChildren
在Parent
-
setTextAlignment
public final void setTextAlignment(TextAlignment value)
设置textAlignment属性的值。- Property description:
- 定义水平文本对齐。
- Default value:
- TextAlignment.LEFT
-
getTextAlignment
public final TextAlignment getTextAlignment()
获取属性textAlignment的值。- Property description:
- 定义水平文本对齐。
- Default value:
- TextAlignment.LEFT
-
textAlignmentProperty
public final ObjectProperty<TextAlignment> textAlignmentProperty()
定义水平文本对齐。- Default value:
- TextAlignment.LEFT
- 另请参见:
-
getTextAlignment()
,setTextAlignment(TextAlignment)
-
setLineSpacing
public final void setLineSpacing(double spacing)
设置属性lineSpacing的值。- Property description:
- 定义行之间像素的垂直空间。
- Default value:
- 0
- 从以下版本开始:
- JavaFX 8.0
-
getLineSpacing
public final double getLineSpacing()
获取属性lineSpacing的值。- Property description:
- 定义行之间像素的垂直空间。
- Default value:
- 0
- 从以下版本开始:
- JavaFX 8.0
-
lineSpacingProperty
public final DoubleProperty lineSpacingProperty()
定义行之间像素的垂直空间。- Default value:
- 0
- 从以下版本开始:
- JavaFX 8.0
- 另请参见:
-
getLineSpacing()
,setLineSpacing(double)
-
getBaselineOffset
public final double getBaselineOffset()
描述从类复制:Parent
基于第一个受管理的子节点计算基线偏移量。 如果没有这样的孩子,返回Node.getBaselineOffset()
。- 重写:
-
getBaselineOffset
在Parent
- 结果
- 基线偏移
-
getClassCssMetaData
public static List<CssMetaData<? extends Styleable,?>> getClassCssMetaData()
- 结果
- 与此类相关联的CssMetaData可能包括其类的CssMetaData。
-
getCssMetaData
public List<CssMetaData<? extends Styleable,?>> getCssMetaData()
描述从类复制:Region
该方法应该委托给Node.getClassCssMetaData()
,以便可以访问Node的CssMetaData而不需要反射。- Specified by:
-
getCssMetaData
在接口Styleable
- 重写:
-
getCssMetaData
在Region
- 结果
- 与该节点相关联的CssMetaData,其可以包括其超类的CssMetaData。
-
queryAccessibleAttribute
public Object queryAccessibleAttribute(AccessibleAttribute attribute, Object... parameters)
该方法由辅助技术调用以请求属性的值。子类通常覆盖此方法来实现特定角色所需的属性。
如果未处理特定属性,则必须调用超类实现。- 重写:
-
queryAccessibleAttribute
在Parent
- 参数
-
attribute
- 请求的属性 -
parameters
- 可选参数列表 - 结果
- 请求的属性的值
- 另请参见:
-
AccessibleAttribute
-
-