- java.lang.Object
-
- javafx.scene.control.SkinBase<T>
-
- javafx.scene.control.skin.TextInputControlSkin<TextField>
-
- javafx.scene.control.skin.TextFieldSkin
-
- All Implemented Interfaces:
-
Skin<T>
public class TextFieldSkin extends TextInputControlSkin<TextField>
默认皮肤实现为TextField
控件。- 从以下版本开始:
- 9
- 另请参见:
-
TextField
-
-
Property Summary
-
Properties inherited from class javafx.scene.control.skin.TextInputControlSkin
forwardBias, highlightFill, highlightTextFill, promptTextFill, textFill
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javafx.scene.control.skin.TextInputControlSkin
TextInputControlSkin.Direction, TextInputControlSkin.TextUnit
-
-
构造方法摘要
构造方法 Constructor 描述 TextFieldSkin(TextField control)
创建一个新的TextFieldSkin实例,将必需的子节点安装到Controlchildren
列表中,以及处理密钥,鼠标等事件的必要输入映射。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 protected void
addHighlight(List<? extends Node> nodes, int start)
从输入法添加组合文本的高亮。double
computeBaselineOffset(double topInset, double rightInset, double bottomInset, double leftInset)
基于第一个受管理的子节点计算基线偏移量。protected double
computeMaxHeight(double width, double topInset, double rightInset, double bottomInset, double leftInset)
根据提供的宽度计算皮肤的最大允许高度。protected double
computeMinHeight(double width, double topInset, double rightInset, double bottomInset, double leftInset)
根据提供的宽度计算皮肤的最小允许高度。protected double
computePrefHeight(double width, double topInset, double rightInset, double bottomInset, double leftInset)
计算这个SkinBase
的首选高度。protected double
computePrefWidth(double height, double topInset, double rightInset, double bottomInset, double leftInset)
计算SkinBase
的首选宽度。void
deleteChar(boolean previous)
如果没有选择,则从文本中删除当前插入符号位置之后或之前的字符,如果有选择则删除选择。void
dispose()
当Skinnable更换皮肤时,由Skinnable调用。Rectangle2D
getCharacterBounds(int index)
返回给定索引处字符的边界。HitInfo
getIndex(double x, double y)
执行命中测试,映射到内容中的索引。Point2D
getMenuPosition()
根据插入符句柄或选择句柄的位置返回用于上下文菜单的位置。protected PathElement[]
getRangeShape(int start, int end)
protected PathElement[]
getUnderlineShape(int start, int end)
protected void
layoutChildren(double x, double y, double w, double h)
在场景图的布局过程中调用。protected String
maskText(String txt)
子类可以覆盖此方法来替换显示的字符而不影响实际的文本内容。void
moveCaret(TextInputControlSkin.TextUnit unit, TextInputControlSkin.Direction dir, boolean select)
按照给定的方向,以指定文本单位之一移动插入符号。void
positionCaret(HitInfo hit, boolean select)
将插入符号移动到指定的位置。protected Object
queryAccessibleAttribute(AccessibleAttribute attribute, Object... parameters)
该方法由辅助技术调用以请求属性的值。protected void
removeHighlight(List<? extends Node> nodes)
从Input Method中删除组合文本的高亮。void
replaceText(int start, int end, String txt)
用给定的文本替换一系列的字符。-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from class javafx.scene.control.SkinBase
computeMaxWidth, computeMinWidth, consumeMouseEvents, getChildren, getNode, getSkinnable, layoutInArea, layoutInArea, layoutInArea, positionInArea, positionInArea, pseudoClassStateChanged, registerChangeListener, snappedBottomInset, snappedLeftInset, snappedRightInset, snappedTopInset, snapPosition, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, unregisterChangeListeners
-
Methods inherited from class javafx.scene.control.skin.TextInputControlSkin
executeAccessibleAction, forwardBiasProperty, getClassCssMetaData, getCssMetaData, getHighlightFill, getHighlightTextFill, getInsertionPoint, getPromptTextFill, getTextFill, handleInputMethodEvent, highlightFillProperty, highlightTextFillProperty, invalidateMetrics, isForwardBias, promptTextFillProperty, scrollCharacterToVisible, setCaretAnimating, setForwardBias, setHighlightFill, setHighlightTextFill, setPromptTextFill, setTextFill, textFillProperty, updateHighlightFill, updateHighlightTextFill, updateTextFill
-
-
-
-
方法详细信息
-
dispose
public void dispose()
当Skinnable更换皮肤时,由Skinnable调用。 该方法允许皮肤在不再需要皮肤后,实现任何必要的清理功能。 它可能用于释放本机资源。 方法Skin.getSkinnable()
和Skin.getNode()
应在调用处理后返回null。 呼叫处理两次无效。
-
computePrefWidth
protected double computePrefWidth(double height, double topInset, double rightInset, double bottomInset, double leftInset)
计算SkinBase
的首选宽度。 默认实现将这个宽度计算为被管理子对象以其首选宽度位于其当前位置时占用的区域的宽度。- 重写:
-
computePrefWidth
在SkinBase<TextField>
- 参数
-
height
- 如果首选宽度取决于应该使用的高度 -
topInset
- 像素拍摄的顶部插图 -
rightInset
- 像素拍摄正确的插图 -
bottomInset
- 像素攫取底部插图 -
leftInset
- 像素拍摄左边插图 - 结果
- 计算的优选宽度
-
computeMinHeight
protected double computeMinHeight(double width, double topInset, double rightInset, double bottomInset, double leftInset)
根据提供的宽度计算皮肤的最小允许高度。- 重写:
-
computeMinHeight
在SkinBase<TextField>
- 参数
-
width
- 皮肤的宽度,以防该值可能决定最小高度。 -
topInset
- 像素拍摄的顶部插图 -
rightInset
- 像素拍摄正确的插图 -
bottomInset
- 像素啪嗒的底部插入 -
leftInset
- 像素拍摄左边插图 - 结果
- 一个双倍代表这个皮肤的最小高度。
-
computePrefHeight
protected double computePrefHeight(double width, double topInset, double rightInset, double bottomInset, double leftInset)
计算这个SkinBase
的首选高度。 默认实现将此高度计算为被管理儿童以其首选高度位于其当前位置时占用的区域的高度。- 重写:
-
computePrefHeight
在SkinBase<TextField>
- 参数
-
width
- 如果首选高度取决于应该使用的宽度 -
topInset
- 像素拍摄顶部插图 -
rightInset
- 像素拍摄正确的插图 -
bottomInset
- 像素攫取底部插图 -
leftInset
- 像素拍摄左边插图 - 结果
- 计算的优选高度
-
computeMaxHeight
protected double computeMaxHeight(double width, double topInset, double rightInset, double bottomInset, double leftInset)
根据提供的宽度计算皮肤的最大允许高度。- 重写:
-
computeMaxHeight
在SkinBase<TextField>
- 参数
-
width
- 皮肤的宽度,以防该值可能决定最大高度。 -
topInset
- 像素拍摄的顶部插图 -
rightInset
- 像素拍摄正确的插图 -
bottomInset
- 像素啪嗒的底部插入 -
leftInset
- 像素拍摄左边插图 - 结果
- 一个双倍代表这个皮肤的最大高度。
-
computeBaselineOffset
public double computeBaselineOffset(double topInset, double rightInset, double bottomInset, double leftInset)
基于第一个受管理的子节点计算基线偏移量。 如果没有这样的孩子,返回Node.getBaselineOffset()
。- 重写:
-
computeBaselineOffset
在SkinBase<TextField>
- 参数
-
topInset
- 像素拍摄的顶部插图 -
rightInset
- 像素拍摄正确的插图 -
bottomInset
- 像素啪嗒的底部插入 -
leftInset
- 像素拍摄左边插图 - 结果
- 基线偏移
-
replaceText
public void replaceText(int start, int end, String txt)
用给定的文本替换一系列的字符。 从行为类调用此实现,而不是TextInputControl提供的实现,以确保文本根据需要滚动。- 参数
-
start
- 范围内的起始索引(含)。 这必须是> = 0和<结束。 -
end
- 范围内的结束索引,独占。 这是一个删除的最后一个字符(与String操作方法一致)。 这必须>开始,而<=文本的长度。 -
txt
- 要替换范围的文本。 这不能为空。 - 另请参见:
-
TextInputControl.replaceText(int, int, String)
-
deleteChar
public void deleteChar(boolean previous)
如果没有选择,则从文本中删除当前插入符号位置之后或之前的字符,如果有选择则删除选择。 从行为类调用此实现,而不是TextInputControl提供的实现,以确保文本根据需要滚动。- 参数
-
previous
- 是否删除前一个字符。
-
getIndex
public HitInfo getIndex(double x, double y)
执行命中测试,映射到内容中的索引。- 参数
-
x
- 点的x坐标。 -
y
- 点的y坐标。 - 结果
-
描述索引和正向偏差的
HitInfo
对象。
-
positionCaret
public void positionCaret(HitInfo hit, boolean select)
将插入符号移动到指定的位置。- 参数
-
hit
- 插入符号的新位置和向前偏移。 -
select
- 是否将选择扩展到新的位置。
-
getCharacterBounds
public Rectangle2D getCharacterBounds(int index)
返回给定索引处字符的边界。- 重写:
-
getCharacterBounds
在TextInputControlSkin<TextField>
- 参数
-
index
- 索引 - 结果
- 在给定索引处的字符的边界
-
getUnderlineShape
protected PathElement[] getUnderlineShape(int start, int end)
- Specified by:
-
getUnderlineShape
在TextInputControlSkin<TextField>
- 参数
-
start
- 开始 -
end
- 结束 - 结果
- 描述给定范围的下划线形状的路径元素。
-
getRangeShape
protected PathElement[] getRangeShape(int start, int end)
- Specified by:
-
getRangeShape
在TextInputControlSkin<TextField>
- 参数
-
start
- 开始 -
end
- 结束 - 结果
- 描述给定范围文本的边界矩形的路径元素。
-
addHighlight
protected void addHighlight(List<? extends Node> nodes, int start)
从输入法添加组合文本的高亮。- Specified by:
-
addHighlight
在TextInputControlSkin<TextField>
- 参数
-
nodes
- 节点列表 -
start
- 开始
-
removeHighlight
protected void removeHighlight(List<? extends Node> nodes)
从Input Method中删除组合文本的高亮。- Specified by:
-
removeHighlight
在TextInputControlSkin<TextField>
- 参数
-
nodes
- 节点列表
-
moveCaret
public void moveCaret(TextInputControlSkin.TextUnit unit, TextInputControlSkin.Direction dir, boolean select)
按照给定的方向,以指定文本单位之一移动插入符号。 请注意,只有某些组合有效,具体取决于实现的子类。- Specified by:
-
moveCaret
在TextInputControlSkin<TextField>
- 参数
-
unit
- 要移动的文本的单位。 -
dir
- 运动方向。 -
select
- 是否将选择扩展到新的定位。
-
layoutChildren
protected void layoutChildren(double x, double y, double w, double h)
在场景图的布局过程中调用。- 重写:
-
layoutChildren
在SkinBase<TextField>
- 参数
-
x
- x位置 -
y
- y位置 -
w
- 宽度 -
h
- 高度
-
getMenuPosition
public Point2D getMenuPosition()
根据插入符句柄或选择句柄的位置返回用于上下文菜单的位置。 这仅在触摸显示器上支持,并且不使用鼠标的位置。- 重写:
-
getMenuPosition
在TextInputControlSkin<TextField>
- 结果
- 用于此上下文菜单的位置
-
maskText
protected String maskText(String txt)
子类可以覆盖此方法来替换显示的字符而不影响实际的文本内容。 这用于在PasswordField中显示项目符号。- 重写:
-
maskText
在TextInputControlSkin<TextField>
- 参数
-
txt
- 可能需要屏蔽的内容。 - 结果
- 替换字符串。 这可能只是输入字符串,也可以是与输入字符串长度相同的替换字符串。
-
queryAccessibleAttribute
protected Object queryAccessibleAttribute(AccessibleAttribute attribute, Object... parameters)
该方法由辅助技术调用以请求属性的值。子类通常覆盖此方法来实现特定角色所需的属性。
如果未处理特定属性,则必须调用超类实现。- 重写:
-
queryAccessibleAttribute
在SkinBase<TextField>
- 参数
-
attribute
- 请求的属性 -
parameters
- 可选参数列表 - 结果
- 请求的属性的值
- 另请参见:
-
AccessibleAttribute
,Node.queryAccessibleAttribute(javafx.scene.AccessibleAttribute, java.lang.Object...)
-
-