java.lang.Object
javafx.scene.control.TextFormatter<V>
- Type Parameters:
V
- The type of the value
public class TextFormatter<V> extends Object
A Formatter describes a format of a
TextInputControl
text by using two distinct mechanisms:
- A filter (
getFilter()
) that can intercept and modify user input. This helps to keep the text in the desired format. A default text supplier can be used to provide the intial text. - A value converter (
getValueConverter()
) and value (valueProperty()
) can be used to provide special format that represents a value of typeV
. If the control is editable and the text is changed by the user, the value is then updated to correspond to the text.
It's possible to have a formatter with just filter or value converter. If value converter is not provided however, setting a value will
result in an IllegalStateException
and the value is always null.
Since Formatter
contains a value which represents the state of the TextInputControl
to which it is currently assigned, a single
Formatter
instance can be used only in one TextInputControl
at a time.
- Since:
- JavaFX 8u40
-
Property Summary
Properties Type Property Description ObjectProperty<V>
value
The current value for this formatter. -
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
TextFormatter.Change
Contains the state representing a change in the content or selection for a TextInputControl. -
Field Summary
Fields Modifier and Type Field Description static StringConverter<String>
IDENTITY_STRING_CONVERTER
This string converter converts the text to the same String value. -
Constructor Summary
Constructors Constructor Description TextFormatter(UnaryOperator<TextFormatter.Change> filter)
Creates a new Formatter with the provided filter.TextFormatter(StringConverter<V> valueConverter)
Creates a new Formatter with the provided value converter.TextFormatter(StringConverter<V> valueConverter, V defaultValue)
Creates a new Formatter with the provided value converter and default value.TextFormatter(StringConverter<V> valueConverter, V defaultValue, UnaryOperator<TextFormatter.Change> filter)
Creates a new Formatter with the provided filter, value converter and default value. -
Method Summary
Modifier and Type Method Description UnaryOperator<TextFormatter.Change>
getFilter()
Filter allows user to intercept and modify any change done to the text content.V
getValue()
Gets the value of the property value.StringConverter<V>
getValueConverter()
The converter between the values and text.void
setValue(V value)
Sets the value of the property value.ObjectProperty<V>
valueProperty()
The current value for this formatter.
-
Property Details
-
value
The current value for this formatter. When the formatter is set on aTextInputControl
and has avalueConverter
, the value is set by the control, when the text is commited.- See Also:
getValue()
,setValue(V)
-
-
Field Details
-
IDENTITY_STRING_CONVERTER
This string converter converts the text to the same String value. This might be useful for cases where you want to manipulate with the text through the value or you need to provide a default text value.
-
-
Constructor Details
-
TextFormatter
Creates a new Formatter with the provided filter.- Parameters:
filter
- The filter to use in this formatter or null
-
TextFormatter
public TextFormatter(StringConverter<V> valueConverter, V defaultValue, UnaryOperator<TextFormatter.Change> filter)Creates a new Formatter with the provided filter, value converter and default value.- Parameters:
valueConverter
- The value converter to use in this formatter or null.defaultValue
- the default value.filter
- The filter to use in this formatter or null
-
TextFormatter
Creates a new Formatter with the provided value converter and default value.- Parameters:
valueConverter
- The value converter to use in this formatter. This must not be null.defaultValue
- the default value
-
TextFormatter
Creates a new Formatter with the provided value converter. The default value will be null.- Parameters:
valueConverter
- The value converter to use in this formatter. This must not be null.
-
-
Method Details
-
getValueConverter
The converter between the values and text. It maintains a "binding" between theTextInputControl.textProperty()
} andvalueProperty()
}. The value is updated when the control loses it's focus or it is commited (TextField only). Setting the value will update the text of the control, usin the provided converter. If it's impossible to convert text to value, an exception should be thrown.- Returns:
- StringConverter for values or null if none provided
- See Also:
TextInputControl.commitValue()
,TextInputControl.cancelEdit()
-
getFilter
Filter allows user to intercept and modify any change done to the text content.The filter itself is an
UnaryOperator
that acceptsTextFormatter.Change
object. It should return aTextFormatter.Change
object that contains the actual (filtered) change. Returning null rejects the change.- Returns:
- the filter for this formatter or null if there is none
-
valueProperty
The current value for this formatter. When the formatter is set on aTextInputControl
and has avalueConverter
, the value is set by the control, when the text is commited.- See Also:
getValue()
,setValue(V)
-
setValue
Sets the value of the property value.- Property description:
- The current value for this formatter. When the formatter is set on a
TextInputControl
and has avalueConverter
, the value is set by the control, when the text is commited.
-
getValue
Gets the value of the property value.- Property description:
- The current value for this formatter. When the formatter is set on a
TextInputControl
and has avalueConverter
, the value is set by the control, when the text is commited.
-