gpt4 book ai didi

java - 为什么我们需要 TextFormatters 转换器

转载 作者:行者123 更新时间:2023-12-01 10:28:14 24 4
gpt4 key购买 nike

我的教授说,对 TextFormatter 使用过滤器和转换器是“理想的”。我查看了他的示例并尝试了它们,但根本不明白为什么我们需要转换器。

来自docs :

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 type V. If the control is editable and the text is changed by the user, the value is then updated to correspond to the text.

我显然这里缺少一些东西。我明白为什么你想将字符串转换为整数(用于计算等)。但为什么必须将它作为 TextFormatter 的一部分呢?我们不能只使用 getText() 然后根据我们想要的值转换文本吗?

还有一件事:如果我们有一个不允许非数字字符的过滤器,那么为什么我们需要使用转换器将文本转换为整数/ double 等?

也许我只是错过了一些非常明显的东西。

最佳答案

您无法将String转换为Integer(或任何其他类型,Object除外):您必须将其转换。即使文本格式化程序有一个只允许数字输入的过滤器,文本字段的 getText() 方法仍然返回一个字符串,这通常不是很方便(因为文本字段中的条目可能代表一个某个对象中的数值)。

您可能需要在许多不同的位置获取由文本字段表示的整数(例如)值,因此您可以通过将转换器作为格式化程序的一部分将转换代码集中在一个位置。

此外,格式化程序的值是一个可观察的属性,因此您可以轻松地将其他属性绑定(bind)到它,等等。如果您需要在文本字段的文本属性的绑定(bind)中执行转换,这将很棘手。

关于java - 为什么我们需要 TextFormatters 转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35245741/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com