如何在java微调器中将1000显示为1.000

时间:2012-10-19 07:48:15

标签: java swing localization number-formatting jspinner

  

可能重复:
  JSpinner editor locale

我必须在java中的微调器中将1000值显示为1.000,默认情况下它显示为1,000。但在欧洲语言环境中,数字应为1.000,00格式而不是1,000.00格式。有人可以帮我弄这个吗。我使用下面的代码:

 JSpinner.NumberEditor editor = new JSpinner.NumberEditor(spinner, pattern);

 spinner.setEditor(editor);

并使用模式作为"##.##0",但这是抛出异常。 我可以为此编写通用代码,根据区域设置,即。,en,fr,pt等处理数字格式吗?

1 个答案:

答案 0 :(得分:2)

尝试明确创建或获取区域设置:

JSpinner spinner = new JSpinner();
String pattern = "0.000"; // valid format
JSpinner.NumberEditor editor = new JSpinner.NumberEditor(spinner, pattern);
DecimalFormat format = editor.getFormat();
Locale locale = new Locale("ru", "RU"); // create your specific locale
DecimalFormatSymbols decimalFormatSymbols = new DecimalFormatSymbols(locale);
format.setDecimalFormatSymbols(decimalFormatSymbols);
spinner.setEditor(editor);