Pregunta

Estoy creando un JSpinner y estableciendo un NumberEditor con un formato personalizado.

Pero no importa lo que haga, el formato usa ". " en lugar de ", " ;, no según mi localidad (pt_BR).

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

¿Es posible usar ", " en lugar de ". " como separador decimal?

¿Fue útil?

Solución

Al especificar un patrón de formato personalizado, le indica al JRE que ignore su configuración regional y use ese formato específico. Si simplemente está buscando una ruleta para números con dos decimales, use setModel () en lugar de setEditor (), que creará un NumberEditor para usted:

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

Si absolutamente debe usar su propio patrón de formato, puede ajustar los símbolos de formato decimal para ese patrón después de haberlo creado:

    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);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top