1

重複の可能性:
JSpinnerエディターロケール

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など)に応じて数値形式を処理できるジェネリックコードを記述できますか?

4

1 に答える 1

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);
于 2012-10-19T08:15:21.660 に答える