Язык интерфейса JSpinner - PullRequest
       12

Язык интерфейса JSpinner

0 голосов
/ 24 июня 2009

Я создаю JSpinner и настраиваю NumberEditor в произвольном формате.

Но независимо от того, что я делаю, формат использует "." вместо ",", не в соответствии с моей локалью (pt_BR).

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

Можно ли использовать "," вместо "." в качестве десятичного разделителя?

1 Ответ

3 голосов
/ 24 июня 2009

Указывая шаблон нестандартного формата, вы говорите JRE игнорировать вашу локаль и использовать этот конкретный формат. Если вы просто после счетчика для чисел до двух десятичных знаков, используйте setModel () вместо setEditor (), который создаст для вас NumberEditor:

    JSpinner priceSpinner = new JSpinner();
    priceSpinner.setModel(new SpinnerNumberModel(0.00, 0.00, 100.00, 0.01));

Если вам абсолютно необходимо использовать собственный шаблон формата, вы можете настроить символы десятичного формата для этого шаблона после его создания:

    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);
...