JFormattedTextField和getValue与getText

时间:2017-08-22 13:01:37

标签: java swing jformattedtextfield

在阅读文档后,我不清楚getValuegetText之间JFormattedTextFieldgetText之间的区别。

在我的代码中,getValue向我提供了我认为我需要的内容,而getValue始终返回null。

在我看来,基于文档,他们应该至少在字段之后返回相同的东西,正确格式化后,失去焦点。

{{1}}方法应该"返回最后一个有效值。"

一个简单的解释会有所帮助。

2 个答案:

答案 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()将不会返回。

您可能在文本字段中输入了无效数据。