如何从 JformattedTextfield 检索货币格式值
Posted
技术标签:
【中文标题】如何从 JformattedTextfield 检索货币格式值【英文标题】:how to retrieve currency format values from JformattedTextfield 【发布时间】:2013-03-20 12:18:35 【问题描述】:我在尝试检索计算值并将其传递给 JformattedTextfield 时遇到了这个问题,我知道由于 jformattedTextfield (,),Float 不能接受 1,500.00。有没有办法绕过这个问题?
private void SellButtonActionPerformed(java.awt.event.ActionEvent evt)
float foreign , sellingRate, localAmount;
try
DefaultTableModel dtm=(DefaultTableModel)p1.getModel();
int i = p1.getSelectedRow();
String s1=dtm.getValueAt(i,2).toString();
txt_rate.setText(s1);
catch(Exception e)
JOptionPane.showMessageDialog(null, "Select Currency First");
foreign = Float.parseFloat(txt_select.getText());
sellingRate = Float.parseFloat(txt_rate.getText());
localAmount = foreign / sellingRate;
txt_amount.setValue(localAmount);
错误信息
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "1,500.00"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1241)
at java.lang.Float.parseFloat(Float.java:452)
我可以计算出低于 1,000
的数字预期结果
【问题讨论】:
JTable 中汇率的疯狂外汇波动 int i = p1.getSelectedRow();应该在所有情况下都包含在 if (i > -1) 中,最好使用 SelectionMode 到 SINGLE 使用带有数字实例的 JFormattedTextField 为我工作 【参考方案1】:您真的要让用户输入带有千位分隔符的货币吗?至少对于我迄今为止看到和开发的所有应用程序来说,这是非常少见的。
通常您只将其用于显示目的,而不是用于输入。因此,用户将输入1000
,您将通过将值格式化为NumberFormat.format()
,将其显示为1,000.00
。
如果您真的想要这样的输入,则应将其视为String
,然后由NumberFormat.parse()
解析,如here 所示。
【讨论】:
以上是关于如何从 JformattedTextfield 检索货币格式值的主要内容,如果未能解决你的问题,请参考以下文章
Double的JFormattedTextField仍然需要字符[重复]
获得焦点时如何选择 JFormattedTextField 中的所有文本?