Impostazioni internazionali dell'editor JSpinner
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?
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