阅读文档后,我不清楚getValue
和getText
对于JFormattedTextField
的区别。
在我的代码中,getText
给了我我需要的东西,而getValue
总是返回null。
在我看来,根据文档,至少当字段正确格式化后,他们都应该返回相同的内容,至少在格式正确后,它们会失去焦点。getValue
方法应该“返回最后一个有效值”。
简单的解释会有所帮助。
最佳答案
JFormattedTextField
是一个文本组件,可以保留一个值并为其提供自定义的String表示形式(格式)。
此值是一个Object,通常是Date或Number实例,这两个类的格式最不相同。
因此,getValue()返回格式化文本字段组件保存的值,而getText()返回该值的字符串表示形式。
有关此组件的更多详细信息,请查看How to Use Formatted Text Fields:
格式化文本字段的文本及其值是两个不同的
属性,并且值通常落后于文本。
text属性由JTextField类定义。这个性质
始终反映该字段显示的内容。值属性,已定义
由JFormattedTextField类提供,可能无法反映最新文本
显示在字段中。在用户键入文本属性时
更改,但是value属性不会更改,除非更改为
承诺。
更准确地说,格式化文本字段的值可以通过以下方式设置
使用setValue方法或commitEdit方法。的
setValue方法将值设置为指定的参数。争论
从技术上讲可以是任何对象,但是格式化程序需要能够
将其转换为字符串。否则,文本字段不会显示
任何实质性信息。
关于java - JFormattedTextField和getValue与getText,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45818419/