Domanda

Sto creando un JSpinner e sto impostando un NumberEditor con un formato personalizzato.

Ma qualunque cosa io faccia, il formato usa ". " invece di ", " ;, non in base alla mia locale (pt_BR).

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

È possibile utilizzare ", " invece di ". " come separatore decimale?

È stato utile?

Soluzione

Specificando un modello di formato personalizzato stai dicendo al JRE di ignorare la tua locale e usare quel formato specifico. Se stai semplicemente cercando uno spinner per i numeri con due cifre decimali, usa setModel () invece di setEditor () che creerà un NumberEditor per te:

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

Se è assolutamente necessario utilizzare il proprio modello di formato, è possibile regolare i simboli del formato decimale per quel modello dopo averlo creato:

    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);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top