阅读文档后,我不清楚getValuegetText对于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/

10-13 03:28