【发布时间】:2016-09-12 19:03:03
【问题描述】:
这是我的代码:
// create the formatters, default, display, edit
NumberFormatter defaultFormatter = new NumberFormatter(new DecimalFormat("#.##"));
NumberFormatter displayFormatter = new NumberFormatter(new DecimalFormat("#.##€"));
NumberFormatter editFormatter = new NumberFormatter(new DecimalFormat("#.##"));
// set their value classes
defaultFormatter.setValueClass(Double.class);
displayFormatter.setValueClass(Double.class);
editFormatter.setValueClass(Double.class);
// create and set the DefaultFormatterFactory
DefaultFormatterFactory valueFactory = new DefaultFormatterFactory(defaultFormatter,displayFormatter,editFormatter);
jFormattedTextField4.setFormatterFactory(valueFactory);
jFormattedTextField1.setFormatterFactory(valueFactory);
当用户输入一个带有点的值时,我遇到了问题,例如 (2.33) ,formatedtextfield 更改为 (2€) ,这是不应该的,因为用户输入了一个有效值。 如果用户输入 (2,33) 结果是 (2,33) 并且再次不应该是,因为应该是 (2.33)
基本上我总是想要格式(X.XX)。 示例:
输入与我想要的: 2-2.00€ / 2,22-2.22€ / 312.54-312.54€ / 432-432.00€ / 2,2-2.20€
已编辑:一周前这是可行的,在我将这个项目安装在另一个窗口中后,问题出现了。此时我有一个葡萄牙语键盘。问题是否可能与任何 Windows 或系统属性有关?
已编辑:我仍在寻求帮助。任何人??? :s
【问题讨论】:
标签: java swing format currency jformattedtextfield