0

JSpinner を作成し、NumberEditor をカスタム形式で設定しています。

しかし、私が何をしても、フォーマットは「。」を使用します。私のロケール(pt_BR)によると、「、」の代わりに。

priceSpinner = new JSpinner();
priceSpinner.setEditor(new JSpinner.NumberEditor(priceSpinner, "0.00"));

「。」の代わりに「、」を使用することはできますか?小数点として?

4

1 に答える 1

4

カスタムフォーマットパターンを指定することにより、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);
于 2009-06-24T09:35:43.620 に答える