在阅读文档后,我不清楚getValue
和getText
之间JFormattedTextField
与getText
之间的区别。
在我的代码中,getValue
向我提供了我认为我需要的内容,而getValue
始终返回null。
在我看来,基于文档,他们应该至少在字段之后返回相同的东西,正确格式化后,失去焦点。
{{1}}方法应该"返回最后一个有效值。"
一个简单的解释会有所帮助。
答案 0 :(得分:3)
好JFormattedTextField
是一个文本组件,允许保留值并为其提供自定义字符串表示(格式)。
此值是一个Object,通常是Date或Number实例,这两个类具有最多不同的格式。
因此,getValue()返回格式化文本字段组件所持有的值,而getText()返回值的字符串表示。
有关此组件的更多详细信息,请查看How to Use Formatted Text Fields:
格式化的文本字段文字及其值是两种不同的 属性,值通常落后于文本。
text属性由JTextField类定义。这个性质 始终反映该字段显示的内容。 value属性,已定义 通过JFormattedTextField类,可能无法反映最新的文本 在现场显示。当用户正在键入时,文本属性 更改,但value属性在更改之前不会更改 提交。
更准确地说,可以通过设置格式化文本字段的值 使用setValue方法或commitEdit方法。该 setValue方法将值设置为指定的参数。争论 在技术上可以是任何对象,但格式化程序需要能够 将其转换为字符串。否则,不显示文本字段 任何实质性信息。
答案 1 :(得分:0)
说你有
JFormattedTextField text = new JFormattedTextField(new DecimalFormat("####.##"));
这是一个简单的数字JFormatedTextField。输入12(有效条目),两个值都相同。如果输入“Hello”,则无效,getValue()将不会返回。
您可能在文本字段中输入了无效数据。