JSpinner を作成し、NumberEditor をカスタム形式で設定しています。
しかし、私が何をしても、フォーマットは「。」を使用します。私のロケール(pt_BR)によると、「、」の代わりに。
priceSpinner = new JSpinner();
priceSpinner.setEditor(new JSpinner.NumberEditor(priceSpinner, "0.00"));
「。」の代わりに「、」を使用することはできますか?小数点として?
カスタムフォーマットパターンを指定することにより、JREにロケールを無視してその特定のフォーマットを使用するように指示します。小数点以下2桁までの数値のスピナーを探しているだけの場合は、setEditor()の代わりにsetModel()を使用して、NumberEditorを作成します。
JSpinner priceSpinner = new JSpinner();
priceSpinner.setModel(new SpinnerNumberModel(0.00, 0.00, 100.00, 0.01));
どうしても独自のフォーマットパターンを使用する必要がある場合は、パターンを作成した後で、そのパターンの10進フォーマット記号を調整できます。
JSpinner priceSpinner = new JSpinner();
JSpinner.NumberEditor editor = new JSpinner.NumberEditor(priceSpinner, "0.00");
DecimalFormat format = editor.getFormat();
//better to use Locale.getDefault() here if your locale is already pt_BR
Locale myLocale = new Locale("pt", "BR");
format.setDecimalFormatSymbols(new DecimalFormatSymbols(myLocale));
priceSpinner.setEditor(editor);