我正在使用BigDecimal来表示Java SE应用程序中的产品价格。
我应该使用哪些swing组件,以便允许用户输入只有两位小数的数字并将其绑定到BigDecimal变量/ Object的属性。 (检查用户输入的内容)?
我一直在玩JTextField,JFormattedTextField,NumberFormatter,MaskFormatter,但我无法解决这个问题。
这些组件是否有任何组合和配置?或者我应该扩展MaskFormatter,JTextField,......?
答案 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")