可能重复:
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等处理数字格式吗?
答案 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);