如何在swing GUI中使用BigDecimal?

时间:2010-03-22 20:25:17

标签: java swing bigdecimal

我正在使用BigDecimal来表示Java SE应用程序中的产品价格。

我应该使用哪些swing组件,以便允许用户输入只有两位小数的数字并将其绑定到BigDecimal变量/ Object的属性。 (检查用户输入的内容)?

我一直在玩JTextField,JFormattedTextField,NumberFormatter,MaskFormatter,但我无法解决这个问题。

这些组件是否有任何组合和配置?或者我应该扩展MaskFormatter,JTextField,......?

2 个答案:

答案 0 :(得分:2)

我讨厌在这些东西上找到这些非常旧的线程,但我的理解是StackOverflow每天都在内部哭泣,答案仍未解决。

所以你可以在这里查看代码:http://www.java2s.com/Code/Java/Swing-JFC/ABigDecimalobjectcustomformatter.htm

基本上设置为JFormattedTextField以使用DecimalFormat

答案 1 :(得分:1)

我不太确定你要做什么,但有一个BigDecimal构造函数将Strings作为参数(类似于Double.parseDouble(String s)):

try
{
    BigDecimal decimal = new BigDecimal(yourJTextField.getText());
}
catch (NumberFormatException nfe)
{ /* error handling */}

有关详细信息,请参阅JavaDoc for BigDecimal

编辑:如果检查/验证用户在文本字段中的输入,请手动检查或使用验证程序(请参阅Google results for "JTextField Validator"