Paramètres régionaux de l'éditeur JSpinner
Question
Je crée un JSpinner et je définis un NumberEditor avec un format personnalisé.
Mais peu importe ce que je fais, le format utilise ". " au lieu de ",", pas selon mes paramètres régionaux (pt_BR).
priceSpinner = new JSpinner();
priceSpinner.setEditor(new JSpinner.NumberEditor(priceSpinner, "0.00"));
Est-il possible d'utiliser ", " au lieu de ". " comme séparateur décimal?
La solution
En spécifiant un modèle de format personnalisé, vous indiquez au JRE d’ignorer vos paramètres régionaux et d’utiliser ce format spécifique. Si vous recherchez simplement des nombres à deux décimales, utilisez setModel () au lieu de setEditor (), qui créera un NumberEditor pour vous:
JSpinner priceSpinner = new JSpinner();
priceSpinner.setModel(new SpinnerNumberModel(0.00, 0.00, 100.00, 0.01));
Si vous devez absolument utiliser votre propre modèle de format, vous pouvez ajuster les symboles de format décimal pour ce modèle après l'avoir créé:
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);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow