- java.lang.Object
-
- javafx.scene.control.TextFormatter<V>
-
- 参数类型
-
V
- 值的类型
public class TextFormatter<V> extends Object
格式化器通过使用两种不同的机制来描述TextInputControl
文本的格式:- 可以拦截和修改用户输入的过滤器(
getFilter()
)。 这有助于保持所需格式的文本。 可以使用默认文本供应商来提供初始文本。 - 值转换器(
getValueConverter()
)和值(valueProperty()
)可用于提供表示V
型值的特殊格式。 如果控件是可编辑的,并且文本被用户改变,则该值被更新为对应于文本。
只需要一个格式化器就可以使用过滤器或值转换器。 如果不提供值转换器,则设置一个值将导致一个
IllegalStateException
,该值始终为空。由于
Formatter
包含一个表示其当前分配到的TextInputControl
的状态的值,因此一个Formatter
实例只能在一个TextInputControl
中使用。- 从以下版本开始:
- JavaFX 8u40
-
-
Property Summary
Properties Type Property 描述 ObjectProperty<V>
value
该格式化程序的当前值。
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 static class
TextFormatter.Change
包含表示TextInputControl的内容或选择更改的状态。
-
Field Summary
Fields Modifier and Type Field 描述 static StringConverter<String>
IDENTITY_STRING_CONVERTER
该字符串转换器将文本转换为相同的String值。
-
构造方法摘要
构造方法 Constructor 描述 TextFormatter(UnaryOperator<TextFormatter.Change> filter)
使用提供的过滤器创建一个新的Formatter。TextFormatter(StringConverter<V> valueConverter)
使用提供的值转换器创建一个新的格式化器。TextFormatter(StringConverter<V> valueConverter, V defaultValue)
使用提供的值转换器和默认值创建一个新的格式化器。TextFormatter(StringConverter<V> valueConverter, V defaultValue, UnaryOperator<TextFormatter.Change> filter)
使用提供的过滤器,值转换器和默认值创建一个新的格式化器。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 UnaryOperator<TextFormatter.Change>
getFilter()
过滤器允许用户截取和修改对文本内容所做的任何更改。V
getValue()
获取属性值的值。StringConverter<V>
getValueConverter()
值之间的转换器和文本。void
setValue(V value)
设置属性值的值。ObjectProperty<V>
valueProperty()
该格式化程序的当前值。
-
-
-
Property Detail
-
value
public final ObjectProperty<V> valueProperty
该格式化程序的当前值。 当格式化器设置为TextInputControl
并具有valueConverter
,该值由控件在文本被valueConverter
设置。- 另请参见:
-
getValue()
,setValue(V)
-
-
字段详细信息
-
IDENTITY_STRING_CONVERTER
public static final StringConverter<String> IDENTITY_STRING_CONVERTER
该字符串转换器将文本转换为相同的String值。 这对于您想要通过该值操作文本或需要提供默认文本值的情况可能很有用。
-
-
构造方法详细信息
-
TextFormatter
public TextFormatter(UnaryOperator<TextFormatter.Change> filter)
使用提供的过滤器创建一个新的Formatter。- 参数
-
filter
- 在此格式化程序中使用的过滤器或null
-
TextFormatter
public TextFormatter(StringConverter<V> valueConverter, V defaultValue, UnaryOperator<TextFormatter.Change> filter)
使用提供的过滤器,值转换器和默认值创建一个新的格式化器。- 参数
-
valueConverter
- 在此格式化程序中使用的值转换器或null。 -
defaultValue
- 默认值。 -
filter
- 在此格式化程序中使用的过滤器或null
-
TextFormatter
public TextFormatter(StringConverter<V> valueConverter, V defaultValue)
使用提供的值转换器和默认值创建一个新的格式化器。- 参数
-
valueConverter
- 在此格式化程序中使用的值转换器。 这不能为空。 -
defaultValue
- 默认值
-
TextFormatter
public TextFormatter(StringConverter<V> valueConverter)
使用提供的值转换器创建一个新的格式化器。 默认值为null。- 参数
-
valueConverter
- 在此格式化程序中使用的值转换器。 这不能为空。
-
-
方法详细信息
-
getValueConverter
public final StringConverter<V> getValueConverter()
值之间的转换器和文本。 它保持TextInputControl.textProperty()
}和valueProperty()
}之间的“绑定”。 当控件失去焦点或被提交时,该值被更新(仅限TextField)。 使用提供的转换器设置值将更新控件的文本。 如果不可能将文本转换为值,则应抛出异常。- 结果
- StringConverter为值,如果没有提供则为null
- 另请参见:
-
TextInputControl.commitValue()
,TextInputControl.cancelEdit()
-
getFilter
public final UnaryOperator<TextFormatter.Change> getFilter()
过滤器允许用户截取和修改对文本内容所做的任何更改。该过滤器本身是一个
UnaryOperator
接受TextFormatter.Change
对象。 它应该返回一个包含实际(过滤的)更改的TextFormatter.Change
对象。 返回null拒绝更改。- 结果
- 这个格式化程序的过滤器,如果没有,则返回null
-
valueProperty
public final ObjectProperty<V> valueProperty()
该格式化程序的当前值。 当格式化程序设置为TextInputControl
并具有valueConverter
,该值由控件在文本被valueConverter
设置。- 另请参见:
-
getValue()
,setValue(V)
-
setValue
public final void setValue(V value)
设置属性值的值。- Property description:
-
该格式化程序的当前值。
当格式化器设置在
TextInputControl
并且具有valueConverter
,该值由控件在文本被valueConverter
设置。
-
getValue
public final V getValue()
获取属性值的值。- Property description:
-
该格式化程序的当前值。
当格式化器设置为
TextInputControl
并具有valueConverter
,该值由控件设置,当文本被提交时。
-
-