2012-08-28 43 views
3

在我当前的项目中,我将货币值存储为代表美分数的int。但是,当用户在文本字段中输入此值时,他们很可能期望将其作为十进制值输入。另外,如果用户没有手动输入,我想预先设置一个美元符号。我如何利用JFormattedTextField为我完成这项工作?还是有其他解决方案使用预先存在的Swing组件,这样我就不必通过手工编码完成重新发明轮子?在Java中格式化货币

回答

3

NumberFormat也适合格式化货币(见NumberFormat#getCurrencyInstance)。因为你需要一个FormatJFormattedTextField我会从那里开始。

您可以NumberFormat配置为允许十进制值,后来就在你的代码将其转换为一个int没有

+0

如果我使用此解决方案,是由'JFormattedTextField.getValue返回什么样的Object'的'问题( )'? –

+0

如果使用'NumberFormat',它将返回'Number' – Robin

+0

除了使用'instanceof'运算符之外,有什么方法可以知道具体类吗?在这种情况下,能够转换为Double并使用自动拆箱会很好。我也使用其他的'JFormattedTextField'来进行整数输入,所以为这些输入'Integer'也会很好! –